0

私からの別の質問。これは簡単なことではありません!

単純なアップロードの処理に問題があります。テストするための事前要件:-フラッシュなし(ハイジャック)-基本的なアップロードフィールドの使用法+投稿するフォーム-最大ファイルサイズは20MB(web.config maxrequestlength)-ビジュアルでIIS開発ツールのビルドを使用してWebサイトを実行していますstudio(私は思う)-私はMVCWebプロジェクトを使用しています

質問:ファイルが20MBを超える場合、ユーザーに適切なエラーメッセージを表示することはできますか?(最初にファイル全体をサーバーに取得せずに)

これらのリンクは私に最も役立ちました:

http://www.telerik.com/community/forums/aspnet/upload/maximum-request-length-exceeded.aspx

ASP.NET MVC:maxRequestLengthを超えるアップロードの処理

http://forums.whirlpool.net.au/archive/809909

http://forums.asp.net/t/1106579.aspx/1

「最大リクエスト長を超えました」をキャッチ

しかし、それでも私は問題を解決することができませんでした。Atm私は最後のリンクの受け入れられた回答のコードを使用します(「最大リクエスト長を超えました」をキャッチします)が、以下のコード行を実行するとコードがクラッシュします:

this.Server.Transfer("~/error/UploadTooLarge.aspx");

エラーメッセージ:〜/ error/UploadTooLarge.aspxの子リクエストの実行中にエラーが発生しました。

VS.NETのビルドインWebサーバーを使用しているため、このメッセージが表示されると思います(そのページのhttp://forums.asp.net/t/1106579.aspx/1最後の投稿を参照)。

質問全体が少し読みづらくなったのではないかと心配しています。つまり、アップロードしたファイルが大きすぎる場合(S.NETのビルドインWebサーバーを使用)に、きちんとしたエラーメッセージを表示するにはどうすればよいですか?

4

1 に答える 1

0

最初にファイル全体をサーバーに送信したくない場合、唯一のオプションはjavascriptです。FileReader オブジェクトはそれを解決します https://developer.mozilla.org/en-US/docs/DOM/FileReader 古いブラウザでは動作しないという問題。古いブラウザーが問題にならない場合は、FileReader オブジェクトの使用方法を示すチュートリアルがたくさんあるはずです。それを使用すると、非同期アップロードを実行できるため、ファイルがかなり大きいことを考慮して、素敵な進行状況バーを追加することもできます.

于 2012-09-27T10:09:41.497 に答える