- - PR -
ASP.NETでのファイルアップロードについて
«前のページへ
1|2|3
投稿者 | 投稿内容 | ||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
投稿日時: 2006-06-25 08:59
ええ、JavaScript でとれない、つまり if (! Fs.FileExists(ファイルパス入力フィールドのID.value) ) { ここがすで通らないわけです。 FileSystemObject が ActiveX Object だから云々ではないのです。 もちろん、ファイルの選択をするものも ActiveX Object で作れば、それは通ります。 しかし、セキュリティ レベルがデフォルトでは、「低」でなければ ActiveX Object の作成ができませんでした。もちろん、カスタマイズすれば、「中低」以上でも作成できるでしょう。 で、もし、JavaScript でとれるなら。 Submit 前に 他の input 要素にコピーしてしまえば、サーバ側でディレクトリがわかってしまいますよね? それって、セキュリティ強化の意味をなさないと思いませんか?
ブログにこう書いているのですが。 これは、次のようなことをしています。
これが、IE7β1 では、ファイル名しか渡らなくなってしまいました。 これでいいですか? [ メッセージ編集済み 編集者: Jitta 編集日時 2006-06-25 13:07 ] | ||||||||||||||||
|
投稿日時: 2006-06-25 14:01
で少しやってみました。
document.forms["form1"].innerHTML を見ても fileBox の value にはパスが入っていないんですね #検証コードかいてたらすでに jitta さんの投稿が・・・ [ メッセージ編集済み 編集者: かるあ 編集日時 2006-06-25 14:31 ] | ||||||||||||||||
|
投稿日時: 2006-06-26 12:24
これに関しては、激しく納得しました。 ただ、私の環境 Win2K SP4 + IE6.0 SP1 なのですが、
これは動きませんでした。 <input type=file>に関しては、たとえ空文字であろうとスクリプトからの値のセットは できないと解釈していたのですが、ブラウザに依存するのでしょうか? 更に、本題に戻りますが、
自分の環境で試したところ、文字列の形式さえ合っていれば、 ファイルシステム上に実際にそのファイルが存在するかどうかは関係ないみたいなので、 IE6以前に関して言えば、FileSystemObjectなんか使わず、 単純に正規表現で文字列の形式だけチェックしてやればOKぽいです。 ただ、IE7対策についてはいい方法が思いつきません。 ちなみに、Win2K SP4 + IE6.0 SP1では、"C"一文字でも普通にsubmitできました。 | ||||||||||||||||
|
投稿日時: 2006-06-27 06:18
すみません。 fs.disabled = true; でした。 大きなファイルをポストして、サーバ側のリミットにかからないように、 「 ユーザには選んでもらうが、ファイルをポストしない 」 ことが目標なので。 | ||||||||||||||||
|
投稿日時: 2006-06-27 10:08
皆様、色々なご意見ありがとうございます。
今回はFileSystemObjectを使わずに 1.<asp:button>と<input type button>を配置する。 2.<asp:button>はVisibleをFalseにして見えなくしておく。 3.<input type button>はrunat="server"を指定しないで 「アップロード」という名前にする。 4.<input type button>が押下されたら正規表現でチェックしてOKなら <asp:button>をクリックする。 以上の手順で上に提案しようと思います。 もちろんIE7のことも報告します。 セキュリティーの問題も含んでいるので、 納得してもらえると思います。 引続きIE7対策で良い案があれば教えていただけると助かります。 皆様、宜しくお願いします。 |
«前のページへ
1|2|3