2

Internet Explorer では、標準の HTML ファイル アップロード フォームを使用して、(ファイル セレクタ ダイアログを使用する代わりに) ファイル名を直接入力することもできます。これにより、存在しないファイルを入力できるようになります。他のブラウザ (それができない) では、ファイルを選択した後にファイルを削除すると、このケースがまだ発生する可能性があると思います。

この問題 (このような) から生じるバグに対処するために、サーバー側にいくつかの検証コードを追加する必要があります (これは、リクエストが実際にサーバーに送信される場合にのみ可能ですが、これについてはよくわかりません)。ポイント)、またはクライアント側 (JavaScript サンドボックスから実際のファイルにアクセスできないため、これは非常に簡単ではありません)。それ以外の唯一の (そしておそらく最良の) オプションは、GMail が添付ファイルに対して行うように、CSS マジックで入力ボックスを非表示にすることです。

では、存在しないファイルをアップロードしようとするとどうなるでしょうか? まだ POST リクエストが送信されていますか? または、ブラウザは中止されますか?もし中止された場合、どうすればそれを検出できますか?

4

3 に答える 3

0

本当に良い質問です。.net には Request.IsClientConnected がありますが、この場合にそれが機能するかどうか、またはそもそも .net を使用しているかどうかはわかりません。

クライアント エンドでは Fiddler を、サーバー エンドでは WireShark を介して実行し、トラフィック パターンを調べて洞察が得られるかどうかを確認します。その後、これを検出する方法を考え出すことができます。

あなたが思いついたものを見ることに興味があります。申し訳ありませんが、より良い答えを出すことはできません。

于 2008-12-11T02:01:41.500 に答える
0

投稿は発生しますが、少なくとも .Net では、System.Web.UI.WebControls.FileUpload コントロールには False になる HasFile プロパティがあります (c:\tmp\foo.pdf をアップロードしようとしました)。処理前にそのプロパティをチェックすることで、ファイルの欠落に起因するバグを防ぐことができます。

于 2008-12-11T02:06:46.407 に答える