1. 程式人生 > >使用uploadify控制元件上傳大檔案錯誤處理記錄

使用uploadify控制元件上傳大檔案錯誤處理記錄

使用uploadify控制元件上傳大檔案時,會出錯:如http 404 錯誤等。

這個錯誤應該是上傳沒有成功,導致讀取上傳後的路徑不存在造成的。

實際的原因還是因為沒有能上傳成功。

上傳失敗的原因有多種,我這裡發現的情況初步判斷是因為檔案超過某個閥值造成的。

第一步:

檢視控制元件本身大小限制:
<script type="text/javascript">
        $(document).ready(function () {
            $("#file_upload").uploadify({
                'buttonImage': '../js/uploadify/mtup.png',
                'auto': true,
                'successTimeout': 99999,
                'swf': '../js/uploadify/uploadify.swf',
                'queueID': 'uploadfileQueue',
                'uploader': '../UpLoadHandler.ashx',
                'width':'70',         
                'height':'25',
                'fileSizeLimit':'488MB', 
                'progressData': 'speed',
                'overrideEvents': ['onDialogClose'],
                'fileTypeExts': '*.gif;*.jpg;*.png;*.apk',
                'onSelectError': function (file, errorCode, errorMsg) {
                    alert("msg:" + errorCode + " , " + errorMsg);
                    switch (errorCode) {
                        ....
                            break;
                    }
                }
...
            });
看到'fileSizeLimit':'488MB', 限制為488M。基本判斷不是控制元件本身限制造成的。


第二步:檢視網站本身限制
Web.config中:
<system.web>
<!-- 
            設定 compilation debug="true" 可將除錯符號插入
            已編譯的頁面中。但由於這會 
            影響效能,因此只在開發過程中將此值 
            設定為 true。
    -->
<compilation debug="false" targetFramework="4.0"/>
<!--控制元件上傳檔案的大小(單位KB) 這裡設定為500M -->
<httpRuntime maxRequestLength="512000" executionTimeout="60"/>


限制大小為512000KB即500M,也不是網站本身限制造成的。


第三步:IIS限制
1、開啟IIS管理器
2、雙擊“請求篩選”
3、點選右側的“編輯功能設定”
4、顯示允許的最大容量長度(位元組),值為:”30000000“ ,即30M。

所以,原因就是IIS限制了30M,改為500000000即可,支援500M