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:/ 下找到上傳的檔案。