起こったこと
- 画面からファイルをアップロードすると「要求の長さの最大値を超えました。」と表示された。
原因
- デフォルトで4MBまでという制限が掛っているため。
対策
- Web.config の httpRuntime プロパティに最大値を設定すればOK。
例として10MBを指定する場合
Web.config
<configuration>
<system.web>
<httpRuntimemaxrequestlength="10240">
</system.web>
</configuration>
- プロパティの最大値を超えるファイルを添付した場合はエラーが出るので、Javascriptで制御する。
HTML
<inputtype="file"id="example"multiple>JavaScript
varmb=10// 制限サイズ(MB)varmessage=`ファイルサイズは${mb}MB以下にしてください。`;constsizeLimit=1024*1024*mb; // 制限サイズconstfileInput=document.getElementById('example');// input要素// changeイベントで呼び出す関数consthandleFileSelect=()=>{constfiles=fileInput.files;for(leti=0;i<files.length;i++){if(files[i].size>sizeLimit){// ファイルサイズが制限以上alert(message);// エラーメッセージを表示fileInput.value='';// inputの中身をリセットreturn;// この時点で処理を終了する}}}// フィールドの値が変更された時(≒ファイル選択時)に、handleFileSelectを発火fileInput.addEventListener('change',handleFileSelect);