日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > php >内容正文

php

php上传文件损坏,PHP 上传文件故障排除

發布時間:2023/12/10 php 46 豆豆
生活随笔 收集整理的這篇文章主要介紹了 php上传文件损坏,PHP 上传文件故障排除 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

PHP 文件上傳時出現問題時,就要在表單、后臺處理程序和服務器配置上找原因。最常見的故障原因有:PHP 配置不正確、服務器上的相關目錄沒有寫權限、表單編寫有問題等。

如果在使用 PHP 上傳時遇到問題,請參閱以下故障排除步驟:

檢查表單

檢查 method、enctype、MAX_FILE_SIZE 等是否正確,各表單項的 name 屬性是否正確,另外

標簽必須關閉,也不可以在任何時候用 JavaScript 禁用文件表單域。

檢查服務器上的目錄權限

確保服務器上的上傳文件保存目錄、上傳臨時目錄(upload_tmp_dir)都有讀寫權限。而且服務器的磁盤空間充足。

對于 Windows,權限的問題有時會比較討厭,需要這樣設置:

上傳臨時文件目錄(upload_tmp_dir):應用程序池對應用戶擁有其修改權限;IUSR(Internet 來賓帳號)擁有其父目錄的列出文件夾內容權限。

所以,一個比較方便的策略是,在任意一個地方建立一個 tmp 文件夾,為其設置 IUSR 的列出文件夾內容權限和應用程序池對應用戶的修改權限;然后在其下建立一個 upload 文件夾,任其繼承 tmp 的權限。最后,將 session.save_path 設在 tmp,upload_tmp_dir 設在 upload。

如果由于權限問題,PHP 無法寫入上傳臨時目錄,它不會報錯而是直接改用系統的臨時目錄(Linux 下的 /tmp 或者 Windows 下的 %SYSTEMROOT%\Temp),造成 upload_tmp_dir 被忽略或未生效的假象。

一般來講,我們都會使用 open_basedir 來限制 PHP 可以訪問的文件系統范圍。這時我們需要注意將上傳臨時目錄也包含在其中。

open_basedir = "/home/wwwroot;/tmp"

如果以上步驟沒有解決問題,則需要檢查 PHP 配置文件 php.ini:

1. 啟用上傳

file_uploads = On

2. 設置上傳文件大小限制

upload_max_filesize = 50M

3. 設置 POST 大小限制

post_max_size = 60M

需要設置為比 upload_max_filesize 大一些。

4. 設置 PHP 內存限制

memory_limit = 128M

需要設置為比 post_max_size 大一些

5. 設置 PHP 接受輸入的時間限制

max_input_time = 60

這個時間是指 PHP 處理輸入數據所花的時間,而非用戶上傳文件所花的時間。確保設置為默認的 60 秒即可。

6. 設置上傳文件臨時目錄

upload_tmp_dir = '/tmp'

此項可以留空,系統會自動使用默認的臨時目錄。但如果使用了 open_basedir 限制 PHP 可以訪問的目錄范圍,則會阻止 PHP 訪問系統臨時目錄,造成上傳失敗。在這種情況下必須指定 upload_tmp_dir。

總結

以上是生活随笔為你收集整理的php上传文件损坏,PHP 上传文件故障排除的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。