このページの本文へ

前へ 1 2 3 4 次へ

  • twitterでつぶやく
  • はてなブックマークに登録
  • del.icio.usに登録
  • livedoorクリップに登録
  • Buzzurlに登録
  • StumbleUponに登録
  • Google Bookmarksに登録
  • Facebookでシェア
  • Yahoo!ブックマークに登録
  • お気に入りに登録
  • 本文印刷

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

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

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で取得したファイルの情報がアラートダイアログに表示されます
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 次へ

カテゴリートップへ

この連載の記事

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

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

みんなが買ってる最新アイテムはコレだ!

Microsoft Windows 7 Home Premium 通常版 Service Pack 1 適用済み

iPhone 4S/4 防指紋性・高光沢機能性フィルム PRO GUARD AF for iPhone 4S/4 / PGAF-IPH4

iPhone 4S/4 防指紋性・高光沢機能性フィルム PRO GUARD AF for iPhone 4S/4 / PGAF-IPH4

マイクロソリューション Micro Solution Inc.

83人が購入

BenQ 24型 LCDワイドモニタ XL2420T

BenQ 24型 LCDワイドモニタ XL2420T

ベンキュージャパン

37,238円〜

3人が購入

jQuery Mobile スマートフォンサイト デザイン入門 (WEB PROFESSIONAL)

jQuery Mobile スマートフォンサイト デザイン入門 (WEB PROFESSIONAL)

アスキー・メディアワークス

2,499円〜

20人が購入

メモリーカード 32GB (PCH-Z321J)

メモリーカード 32GB (PCH-Z321J)

ソニー・コンピュータエンタテインメント

7,772円〜

6人が購入

Amazon.co.jp