- PR -

Strutsのhtml:fileタグについて

1
投稿者投稿内容
すひろ
大ベテラン
会議室デビュー日: 2006/10/17
投稿数: 124
お住まい・勤務地: 愛知県
投稿日時: 2007-03-15 00:36
いつもお世話になっています。

早速質問なのですが、Strutsのhtml:fileタグを使ってファイルを取得した際、
入力されたパスにファイルが存在するかチェックすることはできますか?
現在はファイルがない=0バイトということで下記のようなチェックをしているのですが、
厳密に「ファイルがあるかどうか」をチェックしたいです。
ご存知の方がいましたら教えてください。
よろしくお願いします。

  // DTOからファイル情報を取得
  FormFile file = dto.getUploadfile();

  // ファイル名が入力されていない場合、またはファイルサイズが0バイトの場合
  if ( file.getFileName().toString().equals( "" )
   || file.getFileSize() == 0 ) {

   // エラー処理
  }else{

   // 正常処理
  }
nagise
ぬし
会議室デビュー日: 2006/05/19
投稿数: 1141
投稿日時: 2007-03-15 01:35
引用:

みゅうさんの書き込み (2007-03-15 00:36) より:
早速質問なのですが、Strutsのhtml:fileタグを使ってファイルを取得した際、
入力されたパスにファイルが存在するかチェックすることはできますか?



いまひとつ話が読めないのですが…
Struts側でリクエストが来た時点でファイルは送られてきていますよね。
入力されたパスってなんでしょうか?
HTMLのtypeがfileのinputタグのことですか?
サーバ側ではクライアントのフォルダ構造なりファイルなりは把握できませんよ。

HTTP的なやり取りのどの過程の話なのでしょう?
すひろ
大ベテラン
会議室デビュー日: 2006/10/17
投稿数: 124
お住まい・勤務地: 愛知県
投稿日時: 2007-03-16 00:36
1.html:fileタグによって生成される”参照”ボタンを押して、ダイアログからファイルを選択
2.参照ボタンの左にあるテキストエリアに表示されたパスを存在しないパスに手で書き換える
   例)C:\\Documents and Settings\\Administrator\\デスクトップ\\テスト.txt を、
     C:\\Documents and Settings\\Administrator\\デスク\\テスト.txt に書き換える
3.この状態で実行ボタンを押し、アクション/業務ロジックを起動させる
4.業務ロジックから呼ばれるチェッククラスで、テキストエリアに記述されたファイルが存在するかチェックする
5.ファイルがない場合、エラー処理を行う

上記の4番のチェック、
つまり「入力されたパスは適切か?ファイル名は存在するファイル名か?」をチェックしたいです。

>サーバ側ではクライアントのフォルダ構造なりファイルなりは把握できませんよ。
やっぱり無理なんですね。ありがとうございました。
かつのり
ぬし
会議室デビュー日: 2004/03/18
投稿数: 2015
お住まい・勤務地: 札幌
投稿日時: 2007-03-16 00:45
ファイルフォームはファイル名を送る為のものではなく、
ファイルを送る為のものですよ。
未記入
会議室デビュー日: 2007/08/06
投稿数: 1
投稿日時: 2007-08-06 18:27
// formからファイル情報を取得
  FormFile file = form.getUploadfile();

  // 存在チェック
  if (file.getInputStream().read() == -1) {
    // 存在しない
  }
Edosson
ぬし
会議室デビュー日: 2004/04/30
投稿数: 675
投稿日時: 2007-08-06 18:50
引用:

未記入さんの書き込み (2007-08-06 18:27) より:
// formからファイル情報を取得
  FormFile file = form.getUploadfile();

  // 存在チェック
  if (file.getInputStream().read() == -1) {
    // 存在しない
  }


これは「ファイルは存在しているが中身は空っぽである」が正しいのでは?

<追記>
今さらだけど、からファイルでは0にはなっても、
マイナスにはなりませんね。失礼しました。

[ メッセージ編集済み 編集者: Edosson 編集日時 2007-08-07 09:41 ]
朝日奈ありす
大ベテラン
会議室デビュー日: 2007/05/02
投稿数: 189
お住まい・勤務地: 最北の地
投稿日時: 2007-08-06 21:53
ファイルがない場合はbrowserからエラーがかえらなかったけ?
不正なアクセス〜とか
1

スキルアップ/キャリアアップ(JOB@IT)