眾所周知,檔案上傳在一些**應用中是必不可少的一部分。比如個人部落格上傳個性頭像,一些論壇分享好的學習資料等,這就涉及到使用表單處理檔案上傳的知識,在php中我們可以使用$_files這個全域性陣列來處理。下面就看看基本的檔案上傳處理部分。首先要說明的,能夠上傳檔案必定是乙個安全隱患,所以在開發這部分功能時,一定要注意**的安全性。而本文所**的只是基本的檔案上傳部分,關於安全性這方面考慮的較少,希望在日後的高階應用中可以學習的到。
在php預定義變數這一節我們對一些預定義變數進行了一些大概的學習,其中就有$_files這個全域性變數,那麼現在再來詳細的了解關於這個全域性量的知識,因為我在處理檔案上傳時,要使用到它的相關功能。
$_files引數詳解:
$_files["file"]["name"] – 被上傳檔案的名稱
$_files["file"]["type"] – 被上傳檔案的型別
$_files["file"]["size"] – 被上傳檔案的大小,以位元組計
$_files["file"]["tmp_name"] – 儲存在伺服器的檔案的臨時副本的名稱
$_files["file"]["error"] – 由檔案上傳導致的錯誤**
$_files["file"]["error"]中的["error"]值情況:
upload_err_ok
0:沒有錯誤發生,檔案上傳成功
upload_err_ini_size
1:上傳的檔案超過了 php.ini中upload_max_filesize(預設情況為2m) 選項限制的值
upload_err_form_size
2:上傳檔案的大小超過了 html表單中max_file_size選項指定的值
upload_err_partial
3:檔案只有部分被上傳
upload_err_no_file
4:沒有檔案被上傳
5:傳檔案大小為0
下面我們就來看看最基本的檔案上傳:
這個html頁面如下圖:
upload-file.php**如下:
<?php
if ($_files["file"]["error"] > 0)
else
?>
我們隨便上傳乙個word檔案,看看處理結果如何:
檔名: css.doc
大小: 81.5 kb
儲存位置: c:\windows\temp\php7d.tmp
可以看到,這個檔案被儲存到c:\windows\temp\臨時目錄下,你可能想去看看在這個目錄是否存在這個檔案,但結果是:沒有!為什麼呢?因為php在執行完這個指令碼後,把它生成的檔案又刪除了,所以在上傳之後還要進一步處理。另外還隨便提一下,在windows下,php所生成的臨時檔案如php7d.tmp是有規律的,也就是說在下一次通過表單上傳的檔案應該像這樣:php7e.tmp
為了儲存我們上傳的檔案,要使用move_uploaded_file函式。在你的upload-file.php檔案同目錄建立乙個upload資料夾。下面再來看看上面那個示例:
<?php
if ($_files["file"]["error"] > 0)
else
if (file_exists(」upload/」 . $_files["file"]["name"]))
else
?>
再來看看結果:
檔名: css.doc
大小: 81.5 kb
檔案已經被儲存到: upload/css.doc
經過這一步的處理,在我們所指定的地方(upload)就可以得到我們上傳的檔案。到這裡,最基本的檔案上傳就結束了。還說一下,我們在上傳的時候一定要考慮檔案的型別,要考慮檔案的大小等。關於這些方面隨著學習的深入再來介紹吧。
php上傳檔案處理
眾所周知,檔案上傳在一些 應用中是必不可少的一部分。比如個人部落格上傳個性頭像,一些論壇分享好的學習資料等,這就涉及到使用表單處理檔案上傳的知識,在php中我們可以使用 files這個全域性陣列來處理。下面就看看基本的檔案上傳處理部分。首先要說明的,能夠上傳檔案必定是乙個安全隱患,所以在開發這部分功...
Html上傳檔案php處理上傳檔案
原文詳見 php上傳檔案處理 眾所周知,檔案上傳在一些 應用中是必不可少的一部分。比如個人部落格上傳個性頭像,一些論壇分享好的學習資料等,這就涉及到使用表單處理檔案上傳的知識,在php中我們可以使用 files這個全域性陣列來處理。下面就看看基本的檔案上傳處理部分。首先要說明的,能夠上傳檔案必定是乙...
php上傳大檔案失敗處理
下面分別是各種原因以及解決辦法 第1種情況 檔案上傳時存放檔案的臨時目錄必須是開啟的並且是 php 程序所有者使用者可寫的目錄。如果未指定則 php 使用系統預設值。php.ini檔案中upload tmp dir用來說明php上傳的檔案放置的臨時目錄,要想上傳檔案,得保證伺服器沒有關閉臨時檔案並對...