C# FileUpload 檔案上傳限制

  • 2355
  • 0
  • C#
  • 2019-03-20

FileUpload 檔案上傳限制

根據上一篇多檔案上傳,就很容易碰到手機突然出現這個頁面


這是因為本身在上傳時有問題,但為了安全起見不給外部連入的人看錯誤訊息

若我們需要打開才知道錯誤訊息為何,則需要在webcofig裡面打

<system.web>
   <customErrors mode="Off" />
</system.web>

則可在client觀看。這時你就會發現它上面寫上傳字串長度過長

因為IIS 在上傳時的預設為4MB,但如果說像我們多張上傳怎麼可能容許只有4MB的大小

因此必須在web.config 增加字串長度 (maxAllowedContentLength) 以Bytes 計算

102400000 = 100MB

<system.webServer>
    <security>
        <requestFiltering>
            <requestLimits maxAllowedContentLength="102400000" />
        </requestFiltering>
    </security>
</system.webServer>

這樣將大小設高點,以ios手機上傳一次16張,測試是OK的優~~


正當我無聊無聊時,我就又上傳了十張突然發現她又在跟我說長度過長的問題,我想說我都讓她到1GB了怎麼會這樣呢?

我就上傳到不會報錯的數量,發現竟然只能到10MB,覺得很納悶~~

明明maxAllowedContentLength已經改到1GB了說~~

後來根據這篇我才發現 原來allowRequest如果設太低,也會報錯。

http://www.cnblogs.com/henryhappier/archive/2010/09/20/1832098.html

此篇內文寫到:

AllowRequest 这个是用来设置单个请求的最大长度。比如设置maxRequestLength为30M,maxAllowedContentLength为40M,

然后在Reply Email时,选择了一个35M的附件,在点击Save as Draft的时候,这个请求的长度大概会有35M,这个已经超过了maxRequestLength。

因此最好的辦法就是兩邊都設定到相同的大小 Ex: 1GB 就不會有問題囉~~


我們.net 元件中的fileupload ,在設計的眼裡真的無法容忍,所以下一篇我們來講如何利用textBox 跟 img 來偽裝Fileupload

2017-12-14 透過button 以及 textbox 改寫Fileupload樣式