php環境無法上傳檔案的解決方案_php技巧

來源:互聯網
上載者:User
一、 檢查網站目錄的許可權。

上傳目錄是否有寫入許可權。

二、 php.ini設定檔
php.ini中影響上傳的有以下幾處:

file_uploads 是否開啟 on 必須開啟

是否允許HTTP檔案上傳

post_max_size = 8M

PHP接受的POST資料最大長度。此設定也影響到檔案上傳。
要上傳大檔案,該值必須大於"upload_max_filesize"
如果配置指令碼中啟用了記憶體限制,"memory_limit"也會影響檔案上傳。
一般說來,"memory_limit"應該比"post_max_size"要大。

upload_max_filesize = 2M

允許上傳的檔案的最大尺寸

upload_tmp_dir = C:\windows\temp
檔案上傳時存放檔案的臨時目錄。必須是PHP進程使用者可寫的目錄。如果未指定則PHP使用系統預設值

default_socket_timeout = 60
socket逾時,單位是秒

max_execution_time = 30
每個指令碼最大允許執行時間, 按秒計。預設為30秒。
這個參數有助於阻止劣質指令碼無休止的佔用伺服器資源。
注: "max_execution_time"僅影響指令碼本身的已耗用時間。
任何其它花費在指令碼運行之外的時間,如用system()/sleep()函數的使用、資料庫查詢、檔案上傳等都不包括在內。
在安全模式下,你不能用ini_set()在運行時改變這個設定

max_input_time = 60
每個指令碼接收輸入資料的最大允許時間(POST, GET, upload), 按秒計

memory_limit = 128M
設定一個指令碼所能夠申請到的最大記憶體位元組數。
這有助於防止劣質指令碼消耗完伺服器上的所有記憶體。
要使用此指令必須在編譯的時候啟用。
因此 configure 一行中應該包括:--enable-memory-limit
如果不需要任何記憶體上的限制,必須將其設為 -1
自php4.3.2 起,當設定了memory_limit後,memory_get_usage()函數將變為可用

三、upload_tmp_dir目錄許可權
如果php配置沒問題,那問題有可能出在upload_tmp_dir設定的目錄許可權問題。加入IIS_WPG除完全控制外的許可權,users的讀寫權限,NETWORK SERVER除完全控制外的許可權。

四、如果起用了ZEND,看Temp檔案夾中是否有ZendOptimizer.MemoryBase@SYSTEM和ZendOptimizer.MemoryBase@NETWORKSERVICE,如果沒有,就建立它。

五、如果以上都不行,那問題很有可能出在這裡了,檢查windows目錄是否禁用guests來賓組,要給windows目錄users組 讀取和執行許可權。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.