在PHP中,只需要通過幾行程式碼,就能完成上傳單個和多個檔案的處理。
PHP檔案上傳功能允許上傳二進位制和文字檔案。 此外,您可以通過PHP身份驗證和檔案操作功能完全控制要上傳的檔案。
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()
函式在內部檢查檔案是否通過POST
請求上傳。 如果檔案是通過POST
請求上傳的,它將移動檔案。
語法
bool move_uploaded_file ( string $filename , string $destination )
檔案: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:/
下找到上傳的檔案。