天天看點

使用swfupload上傳超過30M檔案,使用FLASH上傳元件

 前一段時間會員的上傳元件改用FLASH的swfupload來上傳,既能很友好的顯示上傳進度,又能完全滿足大檔案的上傳。

後來伺服器更新到windows 2008,改為IIS7後,上傳檔案一旦超過30M時,就出現404錯誤,而且是是上傳進度達到100%之後,真是讓人難思其解。

反複測試,發現FLASH上傳檔案到并沒有正确的執行.NET程式,也就是.NET程式本身有問題;

但小于30M又是一切OK,難道是上傳的檔案大小有所限制?

檢查web.config的httpRuntime :

<httpRuntime maxRequestLength="2097151" executionTimeout="50000" />

已經是很大值了。

因為無法正确得到詳細的錯誤資訊,就用一個普通的FORM送出一個FileUpload測試,原來真是web.config的設定問題:

最可能的原因:

Web 伺服器上的請求篩選被配置為拒絕該請求,因為内容長度超過配置的值。

可嘗試的操作:

确認 applicationhost.config 或 web.config 檔案中的 configuration/system.webServer/security/requestFiltering/requestLimits@maxAllowedContentLength 設定。

連結和更多資訊

  這是一項安全功能。請不要更改此功能,除非您完全清楚更改的影響範圍。您可以配置 IIS 7.0 伺服器以拒絕内容長度大于指定值的請求。如果請求的内容長度大于所配置的長度,便會傳回此錯誤。如果需要增加内容長度,請修改 configuration/system.webServer/security/requestFiltering/requestLimits@maxAllowedContentLength 設定。

原來IIS7的上傳檔案大小,即便是在經典模式下,也一定要在system.webServer裡設定,加上去就OK了:

    <system.webServer>

      <security>

        <requestFiltering >

          <requestLimits maxAllowedContentLength="1073741824" ></requestLimits>

        </requestFiltering>

      </security>

    </system.webServer>

繼續閱讀