2
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

【ASP.NET】要求の長さの最大値を超えました。

Posted at

##起こったこと

  • 画面からファイルをアップロードすると**「要求の長さの最大値を超えました。」**と表示された。

##原因

  • デフォルトで4MBまでという制限が掛っているため。

##対策

  • Web.config の httpRuntime プロパティに最大値を設定すればOK。

例として10MBを指定する場合

Web.config
<configuration>
  <system.web>
    <httpRuntime maxrequestlength="10240">
  </system.web>
 </configuration>
  • プロパティの最大値を超えるファイルを添付した場合はエラーが出るので、Javascriptで制御する。
HTML
<input type="file" id="example" multiple>
JavaScript
var mb = 10 // 制限サイズ(MB)
var message = `ファイルサイズは${mb}MB以下にしてください。`;
const sizeLimit = 1024 * 1024 * mb; // 制限サイズ
const fileInput = document.getElementById('example'); // input要素
// changeイベントで呼び出す関数
const handleFileSelect = () => {
  const files = fileInput.files;
  for (let i = 0; i < files.length; i++) {
    if (files[i].size > sizeLimit) {
      // ファイルサイズが制限以上
      alert(message); // エラーメッセージを表示
      fileInput.value = ''; // inputの中身をリセット
      return; // この時点で処理を終了する
    }
  }
}
// フィールドの値が変更された時(≒ファイル選択時)に、handleFileSelectを発火
fileInput.addEventListener('change', handleFileSelect);

##参考
https://dotnet.programmer-reference.com/aspnet-maxrequestlength/

2
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?