FileUpload 上傳檔案大小的限制
以往上傳檔案大小的限制是在 web.config 的 maxRequestLength 屬性 (單位為 KB)<system.web>
<httpRuntime
executionTimeout="110"
maxRequestLength="4096"
/>
</system.web>
但今天我上傳一個 30 MB 的檔案 (maxRequestLength 已經放大了),卻還是產生以下的錯誤訊息
錯誤摘要
HTTP 錯誤 404.13 - Not Found
要求篩選模組設定為拒絕超過要求內容長度的要求。
最有可能的原因:
- 網頁伺服器上的要求篩選設定為拒絕要求,因為內容長度超過設定的值。
- 確認 applicationhost.config 或 web.config 檔案中的 configuration/system.webServer/security/requestFiltering/requestLimits@maxAllowedContentLength 設定。
此為安全性功能。除非完全瞭解變更的範圍,否則請勿變更此功能。您可以將 IIS 伺服器設定為拒絕內容長度大於指定值的要求。如果要求的內容長度大於設定的長度,則會傳回此錯誤。如果必須增加內容長度,請修改 configuration/system.webServer/security/requestFiltering/requestLimits@maxAllowedContentLength 設定。
原來 Windows Server 2008 (IIS 7.0) 上又多了一個 maxAllowedContentLength 屬性 (單位為 Byte)
<system.webServer>
<security>
<requestFiltering>
<requestLimits maxAllowedContentLength="1073741824" />
</requestFiltering>
</security>
</system.webServer>
其預設值為 30000000 Bytes (~28.6 MB),所以當我們上傳一個 30 MB 的檔案就會產生以上的錯誤了。
所以我們就把值設定為 1 GB (1024x1024x1024),然後就可以原來的方式用 maxRequestLength 屬性來控制上傳檔案大小從 4MB 到 maxAllowedContentLength 屬性的值之間了。
參考:
沒有留言:
張貼留言