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