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