このページの本文へ

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

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

文●古籏一浩

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

ディレクトリ内のファイル一覧を取得

 FTPサーバー内にあるファイルの一覧を取得し、アップロードされた日付に応じて処理を実行したい場合もあります(たとえば、1日以内にアップロードされた画像ファイルだけをダウンロードするなど)。

 FTPサーバー内のファイル一覧を取得するにはls()メソッドを使います。ls()によって取得したファイル情報は以下の3つのプロパティに配列として格納されます。

files
ファイル名
dates
日付
sizes
ファイルサイズ

 これらの配列を参照することでファイルの情報を得られます。datesはDateオブジェクトで扱える日付形式になっているのでnew Date(dates[0])のようにしてDateオブジェクトを生成すれば、getDate()などのメソッドを使ってファイルの日付情報を取り出せます。

 一覧を取得する対象のディレクトリを変更した場合はcwd()メソッドを使い、移動先のディレクトリパスを引数に指定します。

 サンプル05は、ファイル一覧で取得した最初のファイルの情報をアラートダイアログに表示するものです。なお、環境によってはパッシブモードの設定が必要な場合があります。FTPオブジェクトのpassiveプロパティをtrueに指定すると、パッシブモードに設定できます。

FTPで取得したファイルの情報がアラートダイアログに表示されます

FTPで取得したファイルの情報がアラートダイアログに表示されます


●サンプル05


#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;  // バイナリモード
ftp.passive = false;    // パッシブモード
var flag = ftp.open();
if (flag == true){  // 正常に接続できた場合に処理
    if (ftp.ls() == true){  // ファイル一覧を取得し、成功したときのみ処理
        alert("ディレクトリ内の全ファイル数:"+ftp.files.length);
        alert("最初のファイル名;"+ftp.files[0]);
        alert("最初のファイルの日付;"+ftp.dates[0]);
        alert("最初のファイルサイズ;"+ftp.sizes[0]+"バイト");
    }else{
        alert("ファイル一覧を取得できませんでした");
    }
    ftp.close();
}else{
    alert("FTPサーバーに接続できませんでした");
} 
localfile.close();

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


 BridgeはWeb(HTTP)サーバー、FTPサーバーだけでなくPhotoshopなど他のアプリケーションとも連携でき、使い方次第では強力なツールになります。Bridgeの能力はまだあります。次回はPhotoshopもビックリなピクセル単位の画像処理に挑戦してみましょう。それでは、また次回。

前へ 1 2 3 4 次へ

この連載の記事

一覧へ

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