首頁  >  文章  >  後端開發  >  .NET的file檔案上傳控制項使用方法 修改web.config檔上傳大文件

.NET的file檔案上傳控制項使用方法 修改web.config檔上傳大文件

高洛峰
高洛峰原創
2016-12-24 13:01:441524瀏覽

修改Webcong檔案:

以下為引用的內容: 

<system.web> 
<httpRuntime maxRequestLength="40690" 
useFullyQualifiedRedirectUrl="true" 
executionTimeout="6000" 
useFullyQualifiedRedirectUrl="false" 
minFreeThreads="8" 
minLocalRequestFreeThreads="4" 
appRequestQueueLimit="100" 
enableVersionHeader="true" 
/> 
</system.web>

其中與上傳有密切關係的是:

maxRequestLength

指示 ASP.NET 支援的最大檔案上載大小。

此限制可用於防止因使用者將大量檔案傳遞到該伺服器而導致的拒絕服務攻擊。

指定的大小以 KB 為單位。

預設值為 4096 KB (4 MB)。 

executionTimeout

指示在被 ASP.NET 自動關閉前,允許執行請求的最大秒數。

單位為秒,在上傳大的檔案時把這個設的大一些。

如果伺服器記憶體512M,已可上傳大小160M的檔案。 (沒試過,csdn上眾帖子的一致意見。)

到這裡web.config的設定就已經結束。

可是一旦上傳檔案的大小超過了這個設定的檔案大小範圍就會發生以下錯誤: 此頁無法顯示  您想要檢視的頁面目前無法使用。網站可能遇到技術問題,或者您需要調整瀏覽器設定。

雖然解決不了,那也要捕捉這個錯誤啊!怎麼辦呢? 由於這個錯誤是file控制項引發的前台錯誤,所以在後台想利用try...catch來捕捉是行不通的。

於是想到了利用.NET的錯誤捕獲頁面的機制來處理。可行哦。

以下為引用的內容: 
1、先設定web.config 

<customErrors mode="On"/>

2、新建一個error.aspx 文件,專門用來捕捉錯誤的。

3、在上傳檔案的aspx頁面的前台頁面裡加入page指令。 ErrorPage="UploadError.aspx"

4、在error.aspx中加入一些程式碼來判斷錯誤訊息是否是file造成的前台錯誤。 

public class UploadError : System.Web.UI.Page 
{ 
private void Page_Load(object sender, System.EventArgs e) 
{ 
Exception ex = Server.GetLastError(); 
if (ex != null) 
{ 
Response.Redirect("../error.aspx"); 
} 
else //前台错误ex为空值 
{ 
Response.Redirect("uploadexcel.aspx?err=1"); //重新跳转到上传页面, 
加上err参数是为了显示错误信息 
} 
}

5、顯示錯誤提示。

public class uploadexcel : System.Web.UI.Page 
{ 
private void Page_Load(object sender, System.EventArgs e) 
{ 
if (Request["err"] == "1") 
{ 
Page.RegisterStartupScript("budget","<script language = javascript> 
alert(&#39;Upload file has failed ! File size is too large !&#39;)</script>"); 
} 
} 
}


更多.NET的file檔案上傳控制項使用方法 修改web.config檔上傳大檔案相關文章請追蹤PHP中文網!


陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn