深圳創(chuàng)絡(luò)為客戶做網(wǎng)站時,經(jīng)常需要開發(fā)下載中心或者附件管理及其他類似的功能,有的時候,客戶需要上傳幾十MB甚至幾百MB的文件到網(wǎng)站中,為了提高用戶體驗,我們通常會對這種超大文件進行切片上傳。由于我們長期從事網(wǎng)站開發(fā)這個行業(yè),所以不斷的積累經(jīng)驗,總結(jié)教訓(xùn),目前對文件切片上傳功能的開發(fā),技術(shù)上已經(jīng)很成熟,而且現(xiàn)在已經(jīng)很少遇到文件上傳失敗的情況。今天我們將為大家介紹下遠程服務(wù)器上PHP超大文件切片上傳失敗最常見的原因。
當(dāng)用戶遇到類似技術(shù)問題的時候不需要緊張,請直接聯(lián)系創(chuàng)絡(luò)科技獲取技術(shù)支持。絕大多數(shù)情況下,我們已經(jīng)預(yù)見了所有可能出現(xiàn)的問題并做了相應(yīng)的友好提示,所以,可能用戶自己并不知道文件上傳的具體錯誤信息,但是知道大概原因。這些提示信息也將幫助我們的技術(shù)同事能夠迅速的定位問題并處理問題。上圖所示的正是遠程服務(wù)器上PHP超大文件切片上傳失敗最常見的原因之一:文件切片上傳失敗、文件切片大小超過服務(wù)器的upload_max_filesize限制。
切片的大概思路是將一個比較大的文件分切為多個相對較小的文件來上傳,這樣可以有效降低文件上傳失敗的概率,所有切片文件上傳成功后,再在服務(wù)器上把所有切片文件組合還原成原來的這個大文件。這樣出了可以讓上傳更穩(wěn)定之外,還可以突破一些系統(tǒng)對上傳的文件大小的限制。以阿里云為例,其默認的upload_max_filesize是2MB,也就是說,我們在網(wǎng)站中文件上傳大小最大就是2MB,超過則無法上傳。同樣的道理,當(dāng)我們切片后的切片文件大小還是超過了服務(wù)器的upload_max_filesize的限制的話,那么就會提示上圖所示的錯誤。因為接口返回文件已經(jīng)上傳,但是服務(wù)器上的臨時文件夾卻沒有接收到這些文件,導(dǎo)致無法降臨時文件組合并移動到網(wǎng)站上傳目錄。
知道了問題的原因,就很好解決了,要么修改服務(wù)器配置,要么修改源碼中切片文件的大小,到此,問題得到有效解決。作為網(wǎng)站建設(shè)公司,創(chuàng)絡(luò)后期還將繼續(xù)分享網(wǎng)站后臺操作使用經(jīng)驗,以及一些常見的問題的解決方案,希望可以幫到大家。