Uedior上傳大檔案超時報錯

Nicolas_ZZZ發表於2018-10-30

出錯原因: 1.php超時等待時間太短

      2.uedior中設定了請求超時,提示資訊: 上傳失敗,請重試

 

先解決第一個問題: 

  設定php.ini中的max_execution_time 為0 (意思是http請求等待時間為永久)

 

第二個問題: (在這個地方搞懵逼了,最初沒注意,執行的js檔案是webupload.min.js,改對了然後測試還是不行,糾結了半天才發現自己改的是webupload.js)

 

  開啟webupload.js,然後找到

 

Transport.options = {
server: ``,
method: `POST`,

// 跨域時,是否允許攜帶cookie, 只有html5 runtime才有效
withCredentials: false,
fileVal: `file`,
timeout: 2 * 60 * 1000, // 2分鐘
formData: {},
headers: {},
sendAsBinary: false
};

修改為:

Transport.options = {
            server: ``,
            method: `POST`,

            // 跨域時,是否允許攜帶cookie, 只有html5 runtime才有效
            withCredentials: false,
            fileVal: `file`,
            timeout: 30 * 60 * 1000, // 2分鐘,修改為了30分鐘
            formData: {},
            headers: {},
            sendAsBinary: false
        };

意思是把uedior的上傳等待時間加長。

 

還有一個問題待解決,上傳檔案,如果檔案很大首先會將檔案上傳至伺服器臨時檔案目錄(筆者是centos7,所以預設在opt/lampp/temp/,可以在php.ini中修改臨時檔案目錄),檔案小會先上傳到記憶體中,然後再將檔案上傳到oss中。這樣會讓檔案上傳上傳兩次,增長了上傳視訊時間,解決思路是,直接前端用js上傳到oss中,需要去修改uedior程式碼

相關文章