PHP上傳文件

在PHP中,只需要通過幾行代碼,就能完成上傳單個和多個文件的處理。

PHP文件上傳功能允許上傳二進制和文本文件。 此外,您可以通過PHP身份驗證和文件操作功能完全控制要上傳的文件。

PHP $_FILES

PHP全局$_FILES包含文件的所有信息。 在$_FILES全局變量的幫助下,我們可以得到文件名,文件類型,文件大小,臨時文件名和與文件相關的錯誤。

這裏,我們假設文件名是filename。請參考下表 -

變量名稱

描述

$_FILES['filename']['name']

返回文件名稱

$_FILES['filename']['type']

返回文件的MIME類型

$_FILES['filename']['size']

返回文件的大小(以字節爲單位)

$_FILES['filename']['tmp_name']

返回存儲在服務器上的文件的臨時文件名。

$_FILES['filename']['error']

返回與此文件相關聯的錯誤代碼。

move_uploaded_file()函數

move_uploaded_file()函數將上傳的文件移動到新位置。 move_uploaded_file()函數在內部檢查文件是否通過POST請求上傳。 如果文件是通過POST請求上傳的,它將移動文件。

語法

bool move_uploaded_file ( string $filename , string $destination )

PHP文件上傳示例

文件:uploadform.html

<form action="uploader.php" method="post" enctype="multipart/form-data">  
    選擇上傳的文件:  
    <input type="file" name="fileToUpload"/>  
    <input type="submit" value="Upload Image" name="submit"/>  
</form>

注意:上面代碼中,一定要在 <form> 標籤中添加 enctype="multipart/form-data"屬性,否則PHP代碼無法獲取上傳的文件內容。

文件:uploader.php

<?php  
$target_path = "D:/";  
$target_path = $target_path.basename( $_FILES['fileToUpload']['name']);   

if(move_uploaded_file($_FILES['fileToUpload']['tmp_name'], $target_path)) {  
    echo "File uploaded successfully!";  
} else{  
    echo "Sorry, file not uploaded, please try again!";  
}  
?>

上面示例代碼執行後,應該能在 D:/ 下找到上傳的文件。