首頁 >後端開發 >PHP問題 >如何使用PHP下載檔案並修改檔案名稱

如何使用PHP下載檔案並修改檔案名稱

PHPz
PHPz原創
2023-04-21 09:07:391909瀏覽

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中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn