none
FileUploadコントロールの値のPage Load時の保存 RRS feed

  • 質問

  • 初めてのWebアプリ開発で、ファイルをDBに保存するページの実装で困っています。

     

    FileUploadコントロールでDBへ保存するファイルを指定後、DBへ登録する別の情報取得のために、AutoPostBackをTrueにしてページのリロードを発生させています。

     

    ページのリロード(Protected Sub Page_Load()イベントが発生)後、せっかく指定したFileUploadコントロールで指定したファイルがリセットされてしまいます。

     

    「リセットされないようにする」あるいは、「リセットされた場合、Page_Load()イベントで、元に戻す」ということはできないのでしょうか?

     

    ヘルプの「方法 : FileUpload Web サーバー コントロールを使用してファイルをアップロードする 」の「メモ」に、次のような記述がありましたが、上記現象と関連するのでしょうか?

    「セキュリティ上の理由から、ファイル名を FileUpload コントロールにあらかじめロードすることはできません。」

     

    うまく、質問の意図が伝わっているか不安ですが、アドバイスの程、よろしくお願いいたします。

    2007年8月9日 2:59

回答

  • どっとねっとふぁん 様、IIJIMAS 様

     

    やはり、ページのリロード時にFileUploadコントロールの入力値は保存されないということで、理解しました。

    FileUploadでのファイル指定は、ページ送信直前に実行するようにインターフェースを工夫します。

    幸い、今回のシステムは社内向け かつ 使用ユーザも限定的なため、上記仕様にて、了承してもらえました。

     

    ご回答・アドバイス、ありがとうございました。

    以上

    2007年8月10日 4:58

すべての返信

  • 別の情報はどうしてもリロードしなければ取り出せない情報なのでしょうか?

    どうやってもリロードが必要、ということなら、AutoPostBack時にアップロードされてくるファイルのデータをサーバ上に保存しておき、その後の作業を続ける、といった方法しかとれないのではないかと思います。

    2007年8月9日 3:43
  • ヘルプにあるとおりFileUploadでは不可能だと思います。

    そもそも基本的にブラウザではinput type="file"のvalueにデフォルト値はセットさせないようになっています。

    もしできてしまうとクライアント上の名前がわかっているファイルを盗めるページが簡単に作成できてしまいます。

    #HTTP Requestを自分で書き換えてしまえばできるかもしれませんが…
    2007年8月9日 4:40
  • どっとねっとふぁん 様、IIJIMAS 様

     

    やはり、ページのリロード時にFileUploadコントロールの入力値は保存されないということで、理解しました。

    FileUploadでのファイル指定は、ページ送信直前に実行するようにインターフェースを工夫します。

    幸い、今回のシステムは社内向け かつ 使用ユーザも限定的なため、上記仕様にて、了承してもらえました。

     

    ご回答・アドバイス、ありがとうございました。

    以上

    2007年8月10日 4:58