3

を無視し、私は技術を使用して自分のサーバーにドキュメントをアップロードしようとしてるon this blog最大アップロードファイルサイズを超え

を記述すべてがうまく行っている、と私はちょうど良いドキュメントをアップロードすることができています。私はそうのように私のweb.configファイルで定義されたアップロードの制限を超えるファイルをアップロードしようとしたときのみ、思わぬ障害が

<location path="Documents/Documents/Add"> 
    <system.web> 
     <httpRuntime maxRequestLength="25600"/> 
    </system.web> 
</location> 

問題は、私は、サーバーからの応答を取得しておりませんということです....です。実際には、Visual Studioでデバッグするとき、アクションはヒットしません!シオマネキで

詳しい調査の結果、私は...

504: ReadResponse() failed: The server did not return a response for this request. 

を取得しています....しかし、シオマネキが実行されているとき、私はChromeのみでこれを取得していたことを示しています。もしfiddlerがchromeを実行していなければ、ステータスコードなしで "Failed"と表示され、$().Ajaxフォームコールのerror()はヒットしません。

this SO postにもまったく同じ問題があります。しかし、現在のところ「load.gif」がエラーレスポンスが生成されていないため回転しているので、ファイルサイズが超過したときにユーザーにどのようにフィードバックを与えることができるかを知りたい。

答えて

3

サイズが大きすぎるファイルをアップロードしようとする前に、ファイルサイズのクライアントサイドチェックについて調べてください。 Find size of file behind download link with jQuery

EDIT

あなたはそれをサーバー側を処理したい場合は、カップルの事を行うことができますので、ファイルサイズは、web.configファイルで、あなたの設定よりも大きい場合、サーバーが例外をスローします。

1)最大ファイルサイズを大きくすることができます。アップロードコードが小さすぎると検証し、大きすぎる場合はエラーを返すことができます。もちろん、あなたの新しいサイズよりもさらに大きなものを試そうとすると、それでも失敗するでしょう。

2)global.asaxファイルのエラーをキャッチして、何かを実行します。レスポンスヘッダを設定するか、falseを返すか、何でも返す。このオプションを開始するには、Catching "Maximum request length exceeded"を確認してください。

3)JQueryオプションを使用してクライアントサイドを処理してください。以前に設定したものを使用するか、Flashを使用してサイズを確認してください。

サーバーがファイルが大きすぎると伝えるのを基本的に待つのは、通常遅すぎます。ファイルがあまりにも大きいとあなたに伝える前に、そこに行く必要があります。これはあなたのサーバーでより大きなヒットを引き起こします。可能であれば、クライアント上で確認する方法を見つける方が良いでしょう。

+1

答えてくれてありがとうございますが、サーバー上のファイルに対してcontentLengthが表示されているように見えるかどうかは分かりません。私の状況は、を使ったファイルのアップロードです。私があなたの答えを誤解した場合は、私に知らせてください。 – ETFairfax

+0

これを行うにはいくつかの方法がありますが、サーバー側からの簡単なソリューションを計画している場合は、それらを気に入らないでしょう。最初にweb.configを使用して最大ファイルサイズを管理している場合、アップロードページはそれを超えると決してヒットしません。私は可能な解決策を掲示するために私の答えを変更します。 – benjamin

関連する問題