2010年10月15日金曜日

アップロードファイルのローカル最終更新日時を取得できるか

WEBアプリにてアップロードファイルのローカル最終更新日時を
取得できるか調べてみましたが、結論から言うとできません。
言語はJavaですが多言語も同様です。

[調査1]
・リクエストをパケットモニタしましたが、
   飛んでいる情報は以下3つになります。
    フィールド名
    ファイルパス
    ファイル内容


[調査2]
 ・RFC 1867 ファイルアップロードについての規定にも
   タイムスタンプの記載はなし
  RFC原文
  studyinghttp日本語訳
 
上記調査からタイムスタンプのようなファイル属性はhttp通信時に
欠落する(リクエストに付加されない)ためサーバ側で取得
することは不可能。


最終更新日時の取得などはファイルの一意性を確認したい
場合が多いと思うので、別の方法として
java.security.DigestInputStream等を使用してファイル内容の
ハッシュ値を保存しておく方法が考えられる
(よくダウンロードファイルの改変チェックに使用されているもの)。

 ファイル名
 ファイルサイズ
 ハッシュ値
の比較で全て同じであればファイルの一意性としても
よいかな。

0 件のコメント:

コメントを投稿