Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Cara Menetapkan Pengepala PHP yang Betul untuk Muat Turun Fail PDF: Mengapa Pendekatan Biasa Gagal dan Cara Membaikinya?

Cara Menetapkan Pengepala PHP yang Betul untuk Muat Turun Fail PDF: Mengapa Pendekatan Biasa Gagal dan Cara Membaikinya?

Barbara Streisand
Barbara Streisandasal
2024-11-03 03:34:02707semak imbas

How to Set the Correct PHP Headers for PDF File Download: Why Does the Common Approach Fail and How to Fix It?

Cara Menetapkan Pengepala PHP yang Betul untuk Muat Turun Fail PDF

Ramai pengguna menghadapi kesukaran apabila cuba mengkonfigurasi aplikasi web mereka untuk membuka secara automatik Dokumen PDF apabila pautan diklik. Artikel ini bertujuan untuk menyediakan penyelesaian kepada masalah ini.

Pendekatan biasa ialah menggunakan ubah hala ke halaman tertentu yang menjana pengepala yang diperlukan untuk memulakan muat turun PDF. Walau bagaimanapun, coretan kod berikut sering gagal:

<code class="php">$filename = './pdf/jobs/pdffile.pdf;
$url_download = BASE_URL . RELATIVE_PATH . $filename;
header("Content-type:application/pdf");
header("Content-Disposition:inline;filename='$filename\"");
readfile("downloaded.pdf");</code>

Untuk menangani isu ini, adalah disyorkan untuk mengikuti pendekatan yang ditunjukkan dalam Contoh 2 pada w3schools:

<code class="php">header("Content-type:application/pdf");

// Set the desired file name for download
header("Content-Disposition:attachment;filename=\"downloaded.pdf\"");

// Read the PDF content from its source file
readfile("original.pdf");</code>

Adalah penting untuk ingat bahawa header() mesti mendahului sebarang output sebenar. Dalam PHP versi 4 dan ke atas, penimbalan output boleh digunakan untuk memintas pengehadan ini.

Atas ialah kandungan terperinci Cara Menetapkan Pengepala PHP yang Betul untuk Muat Turun Fail PDF: Mengapa Pendekatan Biasa Gagal dan Cara Membaikinya?. 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