Bagaimana Memaksa Muat Turun Fail dalam PHP Tanpa Mengubah Hala ke Penyemak Imbas?

DDD
Lepaskan: 2024-10-20 20:02:30
asal
938 orang telah melayarinya

How to Force File Downloads in PHP Without Redirecting to the Browser?

Menjana Pautan Muat Turun dalam PHP

Pengenalan

Membekalkan pengguna dengan keupayaan untuk memuat turun fail adalah ciri biasa dalam web aplikasi. Artikel ini akan membimbing anda membuat pautan muat turun untuk imej dan menghalang navigasi ke penyemak imbas.

Penyelesaian

Untuk memaksa muat turun fail, anda boleh menggunakan kod berikut:

<code class="php"><?php
    // File path on disk
    $filePath = '/path/to/file/on/disk.jpg';

    // Check if file exists
    if(file_exists($filePath)) {
        $fileName = basename($filePath);
        $fileSize = filesize($filePath);

        // Output headers
        header("Cache-Control: private");
        header("Content-Type: application/stream");
        header("Content-Length: ".$fileSize);
        header("Content-Disposition: attachment; filename=".$fileName);
        
        // Output file
        readfile ($filePath);
        exit();
    } else {
        die('Invalid file path');
    }
?></code>
Salin selepas log masuk

Dengan menggunakan coretan kod ini pada permulaan halaman PHP, pengguna akan dapat memuat turun fail dengan mengklik pautan biasa.

Pertimbangan Keselamatan

Apabila mencipta fungsi untuk memuat turun fail sewenang-wenangnya, adalah penting untuk melindungi daripada input berniat jahat. Gunakan langkah seperti realpath untuk menghalang traversal direktori dan mengehadkan muat turun ke lokasi yang telah ditetapkan untuk mengekalkan keselamatan tapak web.

Atas ialah kandungan terperinci Bagaimana Memaksa Muat Turun Fail dalam PHP Tanpa Mengubah Hala ke Penyemak Imbas?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php
Kenyataan Laman Web ini
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
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan
Tentang kita Penafian Sitemap
Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!