- - PR -
特殊な複数ファイルアップロード
1
| 投稿者 | 投稿内容 | ||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
投稿日時: 2004-05-18 01:21
かなりご無沙汰しております。^^;
現在 Struts にてファイルアップロードシステムの開発をしております。 普通の方法での複数ファイルアップロード等は問題なくできているのですが、 今回少し特殊な方法で複数のファイルをアップロードしたいと考えております。 その方法とは、下記のようなものです。 @ポップアップウィンドウでアップロードするファイルを選択する。 AJavaScriptで、選択されたファイルのパスを本体画面のテキストエリアに追加。 B上記の手順を繰り返す。 C最後にテキストエリアに表示されているパスのファイルをまとめてアップロード。 このように、<input type="file">(<html:file />)以外のフォームから ファイルをアップロードすることは可能でしょうか? 知っておられる方がおられましたら、ご教授頂ければ幸いです。 よろしくお願い致します。 | ||||||||||||
|
投稿日時: 2004-05-18 10:07
C最後にテキストエリアに表示されているパスs
をいったん、受け取って、サーバーで <input type="file">(<html:file />化 した【新しい】ページを確認画面として返して、確定送信ボタン を押させるような、ゴマカシはどうでしょう? ・・・と言ってみたが、ダメですね。 やはり、type=file をいくつか並べて、アップロードしかないでしょう。 それの下にアップロード一覧を表組表示して、各行に削除チェック を付けるのがフツウのようです。 画面の配置は type=file 10本 アップロード一覧 20本 {追加・削除ボタン}{最終確定ボタン} あたり [ メッセージ編集済み 編集者: MMX 編集日時 2004-05-18 16:43 ] | ||||||||||||
|
投稿日時: 2004-05-18 11:09
似たようなものを作ったことがありますが、そのときは
ポップアップウィンドウ上の<input type="file">でファイルを選択し、 ボタンを押すたびにファイルをアップロードしてしまい、 後で不要なものを破棄していました。 <input type="file">のプロパティにはvalueに相当するものがないので テキストエリアに表示されたパスを表示させることはできないように 思うのですが・・・勘違いでしたらすみません。 | ||||||||||||
|
投稿日時: 2004-05-18 12:47
<input type="file">はセキュリティのために、初期値を設定したり、スクリプトで値を操作することはできません。
> このように、<input type="file">(<html:file />)以外のフォームから > ファイルをアップロードすることは可能でしょうか? @ アップロード用のOCXかAppletを配置し、そのオブジェクトから アップロードさせる。 A Base64にエンコードして<input type="hidden">にその値をセットして アップロードする。 (ローカルファイルのアクセスにScriptを使ったり、 Base64のエンコードJavascriptを自作する必要がありますし、大きいファイル になるとメモリ的にも無理がありますが、、) どちらにしても一手間掛けるしかないでしょう。 やっぱり、ここはJavaの会議室ですからAppletに挑戦してみてはどうですか? [ メッセージ編集済み 編集者: いっきゅう 編集日時 2004-05-18 12:57 ] | ||||||||||||
|
投稿日時: 2004-05-18 15:08
たくさんのご意見誠にありがとうございます。^^
MMXさん
今回はアップロードするファイルの数が固定で決まっている訳ではなく変動するので、 <input type="file">を幾つかならべるという方法では少し対応出来なさそうです。 いっきゅうさん
なるほどなるほど。 ただ、今回クライアントの都合で残念ながらAppletを使うことが出来ません。 別の機会に挑戦してみたいと思います。 taroさん
確かによく考えると、一つずつアップするのも、一括してアップするのも 結果的にはたいして変わらないですもんね〜。 まあ見た目には一括アップかどうか分からないでしょうから、ごまかしに なるかもしれませんが、今回はこの方法でやってみたいと思います。^^; 貴重なご意見ありがとうございました。 | ||||||||||||
1
