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