當前位置: 首頁> 最新文章列表> 如何使用PHP函數實現文件上傳與下載功能

如何使用PHP函數實現文件上傳與下載功能

M66 2025-06-17

如何使用PHP函數實現文件上傳與下載功能

在現代Web開發中,文件上傳和下載是非常常見的功能。 PHP提供了一些內置函數來幫助開發者處理文件操作,包括上傳和下載。本文將詳細介紹如何使用PHP函數進行文件上傳和下載,並提供代碼示例供參考。

一、文件上傳

文件上傳是將本地文件傳輸到服務器的過程。在PHP中,使用`move_uploaded_file()`和`$_FILES`全局變量來處理文件上傳。

首先,確保HTML表單中包含一個文件上傳的輸入控件:

<form method="post" enctype="multipart/form-data">
    <input type="file" name="file">
    <input type="submit" value="Upload">
</form>
    

接著,在PHP代碼中,使用`$_FILES`全局變量來獲取上傳的文件信息。 `$_FILES`是一個關聯數組,包含了文件的名稱、類型、臨時存儲路徑等信息。

if ($_SERVER[&#39;REQUEST_METHOD&#39;] === &#39;POST&#39;) {
    $file = $_FILES[&#39;file&#39;]; // 獲取文件信息$filename = $file[&#39;name&#39;]; // 文件名$tmpPath = $file[&#39;tmp_name&#39;]; // 臨時文件路徑// 上傳文件$destination = &#39;uploads/&#39; . $filename;
    move_uploaded_file($tmpPath, $destination);

    echo &#39;File uploaded successfully!&#39;;
}
    

在上述代碼中,我們首先通過`$_FILES['file']`獲取文件信息,然後使用`move_uploaded_file()`將臨時文件移動到指定的目標路徑。最後,通過`echo`語句輸出上傳成功的提示信息。

二、文件下載

文件下載是將服務器上的文件傳輸到客戶端的過程。 PHP中使用`readfile()`函數實現文件的下載。

以下是一個簡單的文件下載示例:

$file = &#39;path/to/file.txt&#39;; // 設置要下載的文件路徑if (file_exists($file)) {
    header(&#39;Content-Description: File Transfer&#39;);
    header(&#39;Content-Type: application/octet-stream&#39;);
    header(&#39;Content-Disposition: attachment; filename=&#39; . basename($file));
    header(&#39;Content-Transfer-Encoding: binary&#39;);
    header(&#39;Expires: 0&#39;);
    header(&#39;Cache-Control: must-revalidate, post-check=0, pre-check=0&#39;);
    header(&#39;Pragma: public&#39;);
    header(&#39;Content-Length: &#39; . filesize($file));

    readfile($file); // 輸出文件內容exit;
} else {
    echo &#39;File not found!&#39;;
}
    

在此代碼中,首先通過`file_exists()`檢查文件是否存在。如果文件存在,設置相關的HTTP頭信息(如文件類型、文件名和文件大小等),然後使用`readfile()`將文件內容輸出到客戶端。

需要注意的是,正確的設置HTTP頭信息至關重要,特別是`Content-Type`和`Content-Disposition`,它們幫助瀏覽器正確解析文件並啟動下載。

結語

本文介紹瞭如何使用PHP函數進行文件上傳和下載。通過`$_FILES`全局變量和`move_uploaded_file()`函數,你可以輕鬆實現將文件從本地上傳到服務器;通過設置合適的HTTP頭信息和`readfile()`函數,可以將服務器上的文件成功下載到客戶端。希望這些代碼示例對你的開發有所幫助。