如何使用 PHP 實作檔案上傳和下載功能
在開發網站時,檔案上傳和下載功能是非常常見的需求。 PHP作為一種流行的伺服器端腳本語言,提供了豐富的函數和類別庫來幫助我們實現這些功能。本文將介紹如何使用PHP實作檔案上傳和下載功能,包括基本的檔案上傳和下載,以及如何處理上傳的檔案和下載的檔案。
一、檔案上傳功能
首先,我們需要建立一個HTML表單來實作檔案上傳功能。建立一個名為upload.html 的文件,並新增以下程式碼:
<html> <head> <title>文件上传</title> </head> <body> <form action="upload.php" method="POST" enctype="multipart/form-data"> 选择文件:<input type="file" name="fileToUpload" id="fileToUpload"><br> <input type="submit" value="上传文件" name="submit"> </form> </body> </html>
接下來,我們需要建立一個名為upload .php 的PHP腳本來處理檔案上傳。建立一個具有以下程式碼的檔案:
<?php $targetDir = "uploads/"; // 上传文件保存的目录 if(isset($_POST["submit"])) { $targetFile = $targetDir . basename($_FILES["fileToUpload"]["name"]); // 上传文件的完整路径 if(move_uploaded_file($_FILES["fileToUpload"]["tmp_name"], $targetFile)) { echo "文件已成功上传。"; } else { echo "文件上传失败。"; } } ?>
以上程式碼首先指定了檔案上傳已儲存的目錄,即 uploads 目錄。在處理檔案上傳時,我們使用了 move_uploaded_file 函數來將臨時檔案移至目標路徑。
現在,我們可以在瀏覽器中開啟 upload.html 文件,選擇一個文件並點擊上傳按鈕來測試文件上傳功能。上傳的檔案將會儲存在 uploads 目錄中。
二、檔案下載功能
#首先,我們需要建立一個檔案下載連結來讓使用者下載檔案。假設我們已經有一個檔案保存在 uploads 目錄下,並命名為 test.pdf。我們可以透過以下程式碼建立下載連結:
<a href="download.php?file=test.pdf">下载文件</a>
然後,我們需要建立一個名為download.php 的PHP腳本來處理文件下載。建立一個具有以下程式碼的檔案:
<?php $fileDir = "uploads/"; // 文件保存的目录 if(isset($_GET["file"])) { $filePath = $fileDir . $_GET["file"]; // 文件的完整路径 if(file_exists($filePath)) { header("Content-Type: application/octet-stream"); header("Content-Disposition: attachment; filename=" . basename($filePath)); header("Content-Length: " . filesize($filePath)); readfile($filePath); } else { echo "文件不存在。"; } } ?>
以上程式碼首先指定了檔案保存的目錄,即 uploads 目錄。在處理文件下載時,我們設定了一些回應標頭訊息,如 Content-Type、Content-Disposition 和 Content-Length,然後使用 readfile 函數將檔案內容輸出到瀏覽器。
現在,我們可以在瀏覽器中點擊下載連結來測試檔案下載功能。瀏覽器將開始下載文件,並將其保存到本地。
總結
透過上述步驟,我們學習如何使用PHP實作檔案上傳和下載功能。文件上傳功能可以透過建立一個文件上傳表單和相應的處理腳本來實現。文件下載功能可以透過建立一個文件下載連結和相應的處理腳本來實現。在實際專案中,我們可以根據需求對檔案上傳和下載功能進行擴充和最佳化,例如新增檔案類型驗證、檔案大小限制等。
希望本文能對你理解並應用PHP實作檔案上傳和下載功能有所幫助!
以上是如何使用 PHP 實作檔案上傳和下載功能的詳細內容。更多資訊請關注PHP中文網其他相關文章!