文件上傳和下載是Web 開發中常見的功能之一。在PHP 中,實現文件上傳和下載操作非常簡單。本文將帶你了解如何在PHP 中實現這些功能,具體包括上傳文件和下載文件的代碼示例。
文件上傳通常通過HTML 表單提交,並使用PHP 進行處理。在PHP 中,處理上傳文件主要涉及兩個重要函數: move_uploaded_file和$_FILES 。
move_uploaded_file用於將上傳的文件從臨時目錄移動到目標目錄,而$_FILES變量包含了上傳文件的詳細信息,如文件名、臨時存儲路徑等。
下面是一個基礎的文件上傳表單:
<form action="upload.php" method="post" enctype="multipart/form-data">
<input type="file" name="fileToUpload">
<input type="submit" value="上傳文件">
</form>
此表單通過設置enctype="multipart/form-data"來支持文件上傳。
接下來,在PHP 文件中處理上傳文件的代碼如下:
<?php
$target_dir = "uploads/"; // 上傳文件的目录
$target_file = $target_dir . basename($_FILES["fileToUpload"]["name"]); // 上傳文件的路径
if (move_uploaded_file($_FILES["fileToUpload"]["tmp_name"], $target_file)) {
echo "文件上傳成功";
} else {
echo "文件上傳失敗";
}
?>
這段代碼將上傳的文件移動到指定目錄uploads/中,並輸出上傳是否成功的提示。
上傳文件時,需要確保目標目錄具備適當的權限,通常需要設置為755。
文件下載功能可以通過PHP 的header函數來實現。下面是一個文件下載的基本示例:
<?php
$file = 'path/to/file.pdf'; // 要下載的文件路徑
$filename = 'file.pdf'; // 下載時的文件名
header('Content-Disposition: attachment; filename="' . $filename . '"');
readfile($file);
?>
這段代碼通過設置Content-Disposition HTTP 頭部,指示瀏覽器下載文件,而不是在瀏覽器中直接顯示。
確保文件路徑正確並具有讀取權限是實現文件下載的前提。
通過使用PHP 內置的函數,文件上傳和下載操作變得非常簡單。在上傳文件時,使用move_uploaded_file將文件移動到目標位置,而在下載文件時,利用header和readfile實現文件的輸出。根據需求,你還可以為文件上傳和下載增加更多的功能,如限製文件類型、文件大小等。
掌握這些基本的PHP 文件操作功能後,你可以根據項目需求進一步擴展和優化上傳下載功能。