Rumah >pembangunan bahagian belakang >masalah PHP >Cara memuat turun fail dan mengubah suai namanya menggunakan PHP

Cara memuat turun fail dan mengubah suai namanya menggunakan PHP

PHPz
PHPzasal
2023-04-21 09:07:391909semak imbas

PHP ialah bahasa skrip sebelah pelayan yang popular digunakan untuk membangunkan aplikasi web dinamik. Dalam PHP, muat turun fail adalah operasi biasa. Kadangkala, nama fail yang perlu kami muat turun mungkin berbeza daripada nama fail sebenar. Dalam artikel ini, kami akan menerangkan cara memuat turun fail dan menukar namanya menggunakan PHP.

1. Muat turun fail

Dalam PHP, anda boleh menggunakan fungsi readfile() untuk membaca fail dan menghantarnya ke penyemak imbas. Di bawah ialah contoh fail download.php asas yang akan memuat turun fail yang ditentukan.

$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;
}

Dalam kod di atas, kami mula-mula mendapatkan nama fail untuk dimuat turun. Kemudian kami menyemak sama ada fail itu wujud. Jika fail itu wujud, kami menetapkan pengepala HTTP untuk jenis fail, nama fail dan saiz fail, menghantar fail ke penyemak imbas menggunakan fungsi readfile() dan akhirnya keluar dari skrip.

2. Ubah suai nama fail

Jika kami perlu mengubah suai nama fail yang dimuat turun, kami boleh mengubah suai nama fail dalam kod di atas. Sebagai contoh, kita boleh mengubah suai kod di atas kepada yang berikut, di mana nama fail baharu diawali dengan "muat turun_":

$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;
}

Dalam kod di atas, kami telah menambah pembolehubah baharu $newFileName, The nama baharu yang digunakan untuk menyimpan fail yang dimuat turun. Dalam fungsi header(), kami menggantikan basename($file) dengan nama fail baharu. Ini akan menetapkan nama fail yang dimuat turun kepada nama baharu.

3. Kaedah pengubahsuaian lain

Selain mengubah suai nama fail secara langsung dalam fungsi header(), kami juga boleh menggunakan kaedah lain untuk mengubah suai nama fail. Sebagai contoh, kita boleh menggunakan fungsi rename() dalam PHP untuk menamakan semula fail.

Berikut ialah contoh kod yang menukar nama fail yang dimuat turun kepada "muat turun_" + nama fail:

$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;
}

Dalam kod di atas, kami telah menambah rename() Nama semula Fungsi fail yang dimuat turun kepada nama fail baharu. Kami kemudian menggunakan fungsi readfile() untuk menghantar fail baharu ke penyemak imbas dan akhirnya keluar dari skrip.

Ringkasan:

Memuat turun fail dan mengubah suai nama fail dalam PHP adalah keperluan biasa. Kita boleh menggunakan fungsi readfile() untuk membaca fail dan menghantarnya ke penyemak imbas, dan juga menggunakan fungsi header() untuk menetapkan pengepala HTTP untuk jenis fail, nama fail dan saiz fail. Jika kita perlu mengubah suai nama fail, kita boleh mengubah suainya terus dalam fungsi header() atau gunakan fungsi rename() dalam PHP untuk menamakan semula fail.

Atas ialah kandungan terperinci Cara memuat turun fail dan mengubah suai namanya menggunakan PHP. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn