ユーザーが1 MBを超えるサイズの画像をアップロードしないようにする最善の方法

StackOverflow https://stackoverflow.com/questions/810886

質問

VB.NETでASP.netを使用しています。 アップロードされた画像のサイズを確認するために使用できる検証ツールはありますか? それ以外の場合、ユーザーが1 MBを超える画像をアップロードしないようにするには、コードで何をする必要がありますか?

p.s C#コードでも可能です。VB.NETへのコンバーターを使用できます

編集

maxRequestLengthを(WEB.configで)1024に変更し、サイズが1.25mbの画像をアップロードすると、何らかの理由で「Internet ExplorerはWebページを表示できません」というMicrosoftエラーページが表示されます。また、[送信]ボタン内にTry Catchブロックがあります。 Web.configからmaxRequestLengthを削除すると、正常に機能します。

役に立ちましたか?

解決

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

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

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

他のヒント

次のコードを使用して、アップロードされたファイルのサイズ(KB単位)を決定できます。サイズがわかれば、ファイルをさらに処理するか、アップロードを拒否するかを簡単に決定できます。

Request.Files(0).ContentLength / 1024

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

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top