PHP 是一門流行的伺服器端腳本語言,用於開發動態 Web 應用程式。在 PHP 中,文件下載是一個常見的操作。有時候,我們可能需要下載的檔案名稱與實際檔案名稱不同。在這篇文章中,我們將介紹如何使用 PHP 下載檔案並修改檔案名稱。
一、下載檔案
在 PHP 中,可以使用 readfile()
函數來讀取檔案並將其傳送到瀏覽器。以下是一個基本的 download.php
檔案的範例,該檔案將對指定的檔案進行下載。
$file = $_GET['file']; if (file_exists($file)) { header('Content-Description: File Transfer'); header('Content-Type: application/octet-stream'); header('Content-Disposition: attachment; filename="' . basename($file) . '"'); header('Content-Length: ' . filesize($file)); readfile($file); exit; }
在上面的程式碼中,我們首先取得要下載的檔案名稱。然後,我們檢查該文件是否存在。如果檔案存在,我們設定檔案類型、檔案名稱和檔案大小的 HTTP 標頭,並使用 readfile()
函數將檔案傳送到瀏覽器,最後退出腳本。
二、修改檔案名稱
如果我們需要修改下載檔案的名稱,我們可以在上面的程式碼中對檔案名稱進行修改。例如,我們可以將上面的程式碼修改為以下內容,其中新檔案名稱以"downloaded_" 作為前綴:
$file = $_GET['file']; $newFileName = "downloaded_" . basename($file); if (file_exists($file)) { header('Content-Description: File Transfer'); header('Content-Type: application/octet-stream'); header('Content-Disposition: attachment; filename="' . $newFileName . '"'); header('Content-Length: ' . filesize($file)); readfile($file); exit; }
在上面的程式碼中,我們新增了一個新的變數$newFileName
,用於儲存下載檔案的新名稱。在 header()
函數中,我們使用新的檔案名稱取代了 basename($file)
。這樣就會將下載的檔案名稱設定為新的名稱。
三、其他修改方式
除了在 header()
函數中直接修改檔案名稱之外,我們還可以使用其他方式來修改檔案名稱。例如,我們可以使用 PHP 中的 rename()
函數來對檔案進行重新命名。
以下是一個範例程式碼,該程式碼將下載檔案的名稱變更為"downloaded_" 檔案名稱:
$file = $_GET['file']; $newFileName = "downloaded_" . basename($file); if (file_exists($file)) { header('Content-Description: File Transfer'); header('Content-Type: application/octet-stream'); header('Content-Disposition: attachment; filename="' . $newFileName . '"'); header('Content-Length: ' . filesize($file)); rename($file, $newFileName); readfile($newFileName); exit; }
在上面的程式碼中,我們新增了一個rename()
函數將下載的檔案重新命名為新的檔案名稱。然後,我們使用 readfile()
函數將新檔案傳送到瀏覽器,最後退出腳本。
總結:
在 PHP 中下載檔案並修改檔案名稱是一個常見的需求。我們可以使用readfile()
函數來讀取檔案並將其傳送到瀏覽器,同時也可以使用header()
函數來設定檔案類型、檔案名稱和檔案大小的HTTP標頭。如果需要修改檔案名稱,我們可以在 header()
函數中直接進行修改,或是使用 PHP 中的 rename()
函數對檔案進行重新命名。
以上是如何使用PHP下載檔案並修改檔案名稱的詳細內容。更多資訊請關注PHP中文網其他相關文章!