出錯原因: 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程式碼