方法1、清理
A> 清理您的服務(wù)器磁盤(pán)或虛擬空間。滿狀態(tài)的磁盤(pán)空間會(huì)出現(xiàn)前臺(tái)提交表單成功但附件沒(méi)有上傳的現(xiàn)象。通常上傳的附件大小顯示為 0。
B> 清理系統(tǒng)臨時(shí)目錄。
Ø 在 php.ini 中沒(méi)有設(shè)置上傳臨時(shí)目錄的情況下,系統(tǒng)會(huì)將上傳到服務(wù)器的文件放在系統(tǒng)的臨時(shí)目錄里(Windows 服務(wù)器的系統(tǒng)臨時(shí)目錄是 c:/Windows/TEMP;Linux 的系統(tǒng)臨時(shí)目錄是/tmp),這個(gè)目錄滿了,上傳文件就會(huì)失敗。
Ø 在 php.ini 中,可以通過(guò) upload_tmp_dir 的值,來(lái)設(shè)定通過(guò)PHP程序上傳的文件的臨時(shí)目錄。清空該目錄。
方法2、附件目錄繼承寫(xiě)權(quán)限
上傳附件要求附件目錄有寫(xiě)權(quán)限,否則上傳失敗。
A> 如果服務(wù)器是 Linux 主機(jī),請(qǐng)將附件目錄的權(quán)限設(shè)置為 777,并將權(quán)限繼承到附件目錄的下級(jí)目錄(詳細(xì));
B> 如果服務(wù)器是 Windows 主機(jī),請(qǐng)?jiān)O(shè)置附件目錄 IIS 來(lái)賓賬戶(或者運(yùn)行這個(gè)站點(diǎn)的 IIS 賬號(hào))寫(xiě)權(quán)限,并繼承到附件目錄的下級(jí)目錄。特別情況下,需要加設(shè)臨時(shí)目錄的IIS來(lái)賓賬號(hào)(或運(yùn)行IIS的賬號(hào))對(duì)系統(tǒng)臨時(shí)目錄有寫(xiě)權(quán)限;
C> 咨詢空間供應(yīng)商。有些空間限制了目錄屬性,導(dǎo)致在附件目錄下建立子目錄時(shí)失敗
方法3、確定上傳的附件大小
服務(wù)器允許上傳的附件大小設(shè)置點(diǎn)php.ini/upload_max_filesize,默認(rèn)為2M
服務(wù)器允許提交表單的大小設(shè)置點(diǎn)php.ini/post_max_size,默認(rèn)為8M
如果上傳的附件和表單超過(guò)了這兩個(gè)參數(shù)設(shè)置的大小,就會(huì)出現(xiàn)上傳附件不成功的情況。這時(shí),需要適當(dāng)改大參數(shù)的值(如果上傳的附件超過(guò) 6M,建議使用 ftp 或者其他方式上傳),然后重新啟動(dòng)一下 web 服務(wù)器軟件。
另外,虛擬主機(jī)一般不支持大于2M的附件上傳。所以虛擬機(jī)下也建議使用FTP工具。
方法4、修改Apache配置文件
在使用Apache的情況下,指定配置文件里的 open_basedir 參數(shù)可以限制 Apache 能夠訪問(wèn)的目錄。如果指定了這個(gè)參數(shù),可能導(dǎo)致上傳附件不成功。此時(shí),將系統(tǒng)的臨時(shí)目錄或者 php.ini 中 upload_tmp_dir 參數(shù)設(shè)置的目錄、附件目錄添加到 open_basedir 設(shè)置中或者將這個(gè)參數(shù)注釋掉(慎用),然后重新啟動(dòng) Apache 。
新聞熱點(diǎn)
疑難解答
圖片精選