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