簡體   English   中英

處理在web.config中上傳的大小超過maxRequestLength的文件

[英]Handling files uploaded with a size greater than maxRequestLength in web.config

在我的web.config中,我的文件上傳大小限制為10 MB:

<httpRuntime maxRequestLength="10000" /> <!-- file size limit in KB -->

在我的頁面上,我正在檢查用戶是否沒有上傳大於5 MB的文件:

protected void cvImageSize_ServerValidate(object source, ServerValidateEventArgs args)
{
    args.IsValid = (fupFile.PostedFile.InputStream.Length <= 5000000);
}

如果用戶嘗試上傳3 MB文件,則上傳正常。 如果用戶嘗試上載7 MB文件,則會顯示來自cvImageSize的錯誤消息。

如果用戶嘗試上傳13 MB文件...該網站崩潰。 我不確定到底發生了什么,Firefox給了我一個頁面說“ 連接被重置。在頁面加載時重置了與服務器的連接。

當用戶嘗試上傳大小超過maxRequestLength的文件時,是否有一些異常? 我想在頁面上向用戶顯示錯誤消息,而不是網站基本崩潰。

還有一個IIS執行超時 - 這可能會導致您的問題。 你也可以提高這個價值。 有關詳細信息,請查看此文章: http//aspnetresources.com/articles/dark_side_of_file_uploads

您的基本問題是“驗證”(cvImageSize_ServerValidate)確實發生在服務器上。 這意味着必須首先上傳文件,以便您的服務器端代碼能夠驗證。

因此,當上傳更大的(web.config設置)文件時,服務器會拋出異常,您的代碼永遠不會有機會進行驗證。 無論您如何骰子,用戶仍然必須首先將文件上傳到您的服務器,以便服務器進行投訴或讓您驗證大小。

除非您能夠使用Html5(和兼容的瀏覽器) Html5文件上傳與進度

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM