關於PHP上傳檔案時配置 php.ini 中的 upload_tmp_dir

來源:互聯網
上載者:User

標籤:作業系統   機器   php   作者   htm   jpeg   檔案夾   code   size   

在《PHP 5.3 入門經典》9.6.3 的試一試中(P235),給出了一個上傳檔案的例子,這裡的檔案格式為jpeg圖片(image/jpeg)。如果之前未配置 php.ini 中的 upload_tmp_dir 參數,則會出現上傳失敗的提示資訊。看如下程式碼片段

if(isset($_FILES["photo"])) and $_FILES["photo"]["error"] == UPLOAD_ERR_OK)

該判斷語句中的條件如果為真,則繼續。而此時 $_FILES["photo"]["error"] 值為6,UPLOAD_ERR_OK值為0(表示上傳成功)。

下面列出 $_FILES["photo"]["error"] 不同值所代表含義:

其值為 0,沒有錯誤發生,檔案上傳成功。其值為 1,上傳的檔案超過了 PHP.ini 中 upload_max_filesize 選項限制的值。其值為 2,上傳檔案的大小超過了 HTML 表單中 MAX_FILE_SIZE 選項指定的值。其值為 3,檔案只有部分被上傳。其值為 4,沒有檔案被上傳。其值為 6,找不到臨時檔案夾。php 4.3.10 和 PHP 5.0.3 引進。其值為 7,檔案寫入失敗。PHP 5.1.0 引進。 

即找不到臨時檔案夾,一般來說是為配置php.int中的 upload_tim_dir 或者其值配置不正確。

網上例子一般推薦 upload_tim_dir = "C:\Windows\Temp",實際上因為安全/許可權等方面原因,依然會報錯(6)。

故作者修改其路徑為其它,比如 upload_tim_dir = "C:\temp",此時程式即可正常運行。有些博主提及需要將 "C:\temp" 檔案夾 Users 組/使用者 添加“寫入”許可權。而作者測試時發現不修改也可以,可能與機器/作業系統環境有關。

tips:upload_tim_dir = "C:\Windows\Temp" 中路徑字串將 "\" 替換為 "/" 或兩者混用沒有任何影響。(PHP 7.1.6)

 

關於PHP上傳檔案時配置 php.ini 中的 upload_tmp_dir

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.