このページの本文へ

PROGRAMMING 古籏一浩のJavaScriptラボ第25回

画像の自動アップロードもJavaScriptにお任せ!

2010年02月12日 11時00分更新

古籏一浩

  • この記事をはてなブックマークに追加
本文印刷

※この記事は「古籏一浩のJavaScriptラボ」の第25回です。過去の記事も合わせてご覧ください。

Adobe Bridge

 「Adobe Bridge」のJavaScriptを使ってWeb画像処理を自動化する本連載。前回はWebサーバーから取得したRSSのタイトルを抽出し、Photoshopで画像として保存する方法を紹介しました。BridgeはFTP に対応しており、JavaScriptを使ってファイルをアップロードしたりダウンロードしたりできます。今回は、保存した画像をサーバーにFTPで転送してみましょう。

■シリーズラインナップ


BridgeでファイルをFTPサーバーに転送してみよう

 BridgeでFTP機能を有効にするには、本連載の第22回で説明した以下のスクリプトを最初に記述します。


if ( !ExternalObject.webaccesslib ) {
    ExternalObject.webaccesslib = new ExternalObject("lib:webaccesslib");
}


 FTPサーバーへのアクセスは、new FtpConnection()を使ってFTPオブジェクトを作成します。new FtpConnection()の引数には接続先のサーバー名を指定します。セキュアなFTPにも対応しています。

 FTPオブジェクトを生成しただけではサーバーに接続されませんので、接続前にユーザー名とパスワードなどを設定しておきます。ユーザー名はFTPオブジェクトのusernameプロパティに、パスワードはpasswordプロパティに入れます。また、今回は画像ファイルの転送なので、binaryプロパティにtrueを設定してバイナリ モードでファイルを送信します。

 以上で設定完了ですので、open()メソッドを使ってFTPサーバーに接続します。open()の戻り値がtrueなら接続に成功、falseなら失敗です。falseの場合はサーバー名やパスワードなどを再度確認しましょう。

 ファイルの転送にはput()メソッドを使います。転送元のローカルファイル名を第1引数に、転送先のファイル名を第2引数に指定します。FTPサーバーへの転送が終わったらclose()で接続を終了します。

 サンプル01はローカルのホームフォルダにある「rss_title.jpg」ファイルをFTPサーバーへ転送するものです。なお、サンプル01以降すべてのサンプルでユーザー名「asc」、パスワード「ascii」としています。実際に使用する際は、FTPサーバー上のユーザー名とアカウント名を設定してください。

●サンプル01


#target "Bridge"
// Http, Ftpが使えるようにする
if ( !ExternalObject.webaccesslib ) {
    ExternalObject.webaccesslib = new ExternalObject("lib:webaccesslib");
}
// FTP転送するサーバー名
var url = "ftp://●●●●●●●●●";
var username = "asc"; // ユーザー名
var pw = "ascii"; // パスワード
var localfile = new File("~/rss_title.jpg");    // 転送元のファイルパス
var filename = "rss_title.jpg";   // 転送先のファイル名
// FTPサーバーへ接続
var ftp = new FtpConnection(url);
ftp.username = username;    // ユーザー名
ftp.password = pw;  // パスワード
ftp.binary = true;  // バイナリモード
var flag = ftp.open();
if (flag == true){  // 正常に接続できた場合に処理
    ftp.put(localfile, filename); // ファイルを転送
    ftp.close();
}else{
    alert("FTPサーバーに接続できませんでした");
} 
localfile.close();

●●●●●●●●●:FTPサーバー名を入れて下さい


Web Professionalトップページバナー

この記事の編集者は以下の記事をオススメしています

ASCII.jp会員サービス 週刊Web Professional登録

Webディレクター江口明日香が行く