2009-05-01 8 views
3

私はVB.netでASP.netを使用しています。 アップロードした画像のサイズを確認するために使用できるバリデータがありますか? 他のユーザーが1MB以上の画像をアップロードしないようにするには、コードで何をする必要がありますか?ユーザーが1MB以上のサイズの画像をアップロードしないようにするための最良の方法

PSのC#コードも行います、私は(私のweb.configファイルで)私は1024年にmaxRequestLengthを変更するいくつかの理由EDIT

VB.NET

をコンバータを使用することができますし、Iサイズ1.25MBの画像をアップロードすると、「Internet Explorerはウェブページを表示できません」というMicrosoftのエラーページが表示されます。私はSubmitボタンの中にTry Catchブロックを持っています。 Web.configからmaxRequestLengthを削除した場合、正常に動作します。

+0

同じ質問が既に掲載されています:http://stackoverflow.com/questions/158149/how-do-you-restrict-the-size-of-a-file-being-uploaded-with-javascript-or -java-w –

+0

これはJavaの場合と同様の質問です。 ASP.NETには異なるメカニズムがあります。 – BobbyShaftoe

+0

イップ私も私の前にその質問を見た、ありがとうBobby !! – Etienne

答えて

4

これは最終的にWeb.configで処理されます。 httpRuntimeセクションを探します。

<httpRuntime 
executionTimeout="110" 
maxRequestLength="4096" 
/> 

httpRuntimeには他にも多くの設定がありますが、これは関連する2つの設定です。ここで、maxRequestLengthは4096、つまり4KB(数値はバイト単位)に設定されています。したがって、この値を適切に設定してください。また、それに応じてexecutionTimeoutも設定したいので、最大アップロードのものをアップロードするのに合理的な時間を与えます。

+0

アップロードがこのサイズを超える場合ASP.netではリクエストを処理することはありません。 –

+0

@Saintこれは良いことかもしれませんが、何百ものクライアントからギガバイトのファイルをアップロードして誰かがDDOSを取得していない;) –

+0

私はmaxRequestLengthを1024に変更して何らかの理由でこれを試しました。私はMicrosoft Internet ExplorerのWebページを表示することはできません "と言ってMicrosoftエラーページを取得.........そして、私は送信ボタン内のキャッチブロックを試して..... ..... – Etienne

2

次のコードを使用して、アップロードされたファイルのサイズ(KB)を判断し、サイズを知ったら、ファイルをさらに進めるかアップロードを拒否するかを簡単に判断できます。

Request.Files(0).ContentLength/1024 
+0

ええ、デフォルトでは、私が信じる最大サイズは1MBよりも小さいので、まだWeb.configに対処する必要があります。 – BobbyShaftoe

0

Webページを表示できません。エラーは、サイズの大きい要求に基づいてDOS攻撃を緩和するために、大規模な要求に対してASP.NETが接続を切断するために発生します。これを回避するには、iframeでアップロードを行い、エラーが発生したかどうかを検出する必要があります。また、クライアントにインストールされているflash、silverlight、java、またはactivexアップローダーコンポーネントを使用して、ファイルサイズのクライアント側を検証することもできますが、これはソリューションに応じてインストールする必要があります。

関連する問題