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