$_FILES函數詳解

新建form.html文件,html文本

<span style="font-size:14px;"><form action="upload.php" method="post" enctype="multipart/form-data">
	<label for="file">文件名:</label>
    <input type="file" name="file" id="file">
    <input type="submit" name="submit" value="提交"/>
</form></span>
新建upload.php文件,文件內容

<span style="font-size:14px;"><?php
header("Content-Type: text/html; charset=utf-8");

if ($_FILES["file"]["error"] > 0)
{
	echo "錯誤:" . $_FILES["file"]["error"] . "<br>";
}
else
{
	echo "上傳文件名: " . $_FILES["file"]["name"] . "<br>";
	echo "文件類型: " . $_FILES["file"]["type"] . "<br>";
	echo "文件大小: " . ($_FILES["file"]["size"] / 1024) . " kB<br>";
	echo "文件臨時存儲的位置: " . $_FILES["file"]["tmp_name"];
}
?></span>
上傳文件,並點擊提交,反饋內容如下

上傳文件名: benefit1.jpg
文件類型: image/jpeg
文件大小: 8.427734375 kB
文件臨時存儲的位置: D:\wamp\tmp\php72D6.tmp

文件上傳主要用到$_FILES超級全局變量,當客戶端提交後,我們獲得了一個$_FILES 數組 。
$_FILES數組內容如下: 
$_FILES['myFile']['name'] 客戶端文件的原名稱。 
$_FILES['myFile']['type'] 文件的 MIME 類型,需要瀏覽器提供該信息的支持,例如"image/jpeg"。 
$_FILES['myFile']['size'] 已上傳文件的大小,單位爲字節。 
$_FILES['myFile']['tmp_name'] 文件被上傳後在服務端儲存的臨時文件名,一般是系統默認。可以在php.ini的upload_tmp_dir 指定,但 用 putenv() 函數設置是不起作用的。 
$_FILES['myFile']['error'] 和該文件上傳相關的錯誤代碼。['error'] 是在 PHP 4.2.0 版本中增加的。下面是它的說明:(它們在PHP3.0以後成了常量) 
UPLOAD_ERR_OK 
值:0; 沒有錯誤發生,文件上傳成功。 
UPLOAD_ERR_INI_SIZE 
值:1; 上傳的文件超過了 php.ini 中 upload_max_filesize 選項限制的值。 
UPLOAD_ERR_FORM_SIZE 
值:2; 上傳文件的大小超過了 HTML 表單中 MAX_FILE_SIZE 選項指定的值。 
UPLOAD_ERR_PARTIAL 
值:3; 文件只有部分被上傳。 
UPLOAD_ERR_NO_FILE 
值:4; 沒有文件被上傳。 
值:5; 上傳文件大小爲0. 

文件被上傳結束後,默認地被存儲在了臨時目錄中,這時您必須將它從臨時目錄中刪除或移動到其它地方,如果沒有,則會被刪除。也就是不管是否上傳成功,腳本執行完後臨時目錄裏的文件肯定會被刪除。所以在刪除之前要用PHP的 copy() 函數將它複製到其它位置,此時,纔算完成了上傳文件過程。




發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章