ASP.net File Upload Size
前言
從IIS7開始,IIS預設限制28MB左右的要求內容長度,而ASP.net預設則是限制4MB大小
如果一個網站的用戶想上傳100MB檔案,勢必IIS和ASP.net兩邊都要設定
實作
ASP.net Web.config裡寫下以下區段
<system.web>
<httpRuntime maxRequestLength="102400" executionTimeout="600"/>
</system.web>
maxRequestLength 檔案大小(KB),預設值4096 KB(4MB),所以102400KB為100MB
executionTimeout 上傳時間(秒),600秒為10分鐘
executionTimeout 上傳時間(秒),600秒為10分鐘
<system.webServer>
<security>
<requestFiltering>
<requestLimits maxAllowedContentLength="104857600" />
</requestFiltering>
</security>
</system.webServer>
maxAllowedContentLength 檔案大小(byte),所以104857600(1024*1024*100)為100MB
上述system.webServer也可以透過IIS來設定
允許的內容長度上限預設值為30000000(約28MB),把它修改為104857600
如此一來,網站便可以上傳100MB大小的檔案了
加碼補充
如果當使用者上傳檔案超過限制大小時,想重新導向到自訂的錯誤頁面
在Global.asax.cs裡寫下...
protected void Application_BeginRequest(object sender, EventArgs e)
{
HttpRuntimeSection section = (HttpRuntimeSection)ConfigurationManager.GetSection("system.web/httpRuntime");
int maxFileSize = section.MaxRequestLength * 1024;
if (Request.ContentLength > maxFileSize)
{
try
{
Response.Redirect("~/MySizeError.aspx");
}
catch (Exception ex)
{
}
}
}
引用來源:高級打字員的技術雲