Unduh otomatis pdf di php

Ini adalah panduan singkat tentang cara memaksa file PDF untuk diunduh menggunakan PHP. Dalam panduan ini, saya akan menunjukkan cara memaksa browser mengunduh file PDF sebagai lampiran alih-alih menampilkannya secara langsung

Perhatikan skrip PHP berikut

//The full or relative path to your PDF file.
$pdfFile = 'instructions.pdf';

//Set the Content-Type to application/pdf
header('Content-Type: application/pdf');

//Set the Content-Length header.
header('Content-Length: ' . filesize($pdfFile));

//Set the Content-Transfer-Encoding to "Binary"
header('Content-Transfer-Encoding: Binary');

//The filename that it should download as.
$downloadName = 'instructions.pdf';

//Set the Content-Disposition to attachment and specify
//the name of the file.
header('Content-Disposition: attachment; filename=' . $downloadName);

//Read the PDF file data and exit the script.
readfile($pdfFile);
exit;

Dalam kode di atas

  • Kami merujuk jalur ke file PDF yang ingin kami unduh. Dalam hal ini, file yang dimaksud adalah instruksi. pdf dan terletak di direktori yang sama dengan skrip PHP kita. Penting untuk dicatat bahwa Anda juga dapat menggunakan jalur lengkap ke PDF Anda jika file tersebut berada di direktori lain
  • Kami menggunakan fungsi header PHP untuk mengatur respons Content-Type ke "application/pdf". Header ini memberi tahu browser jenis data apa yang diharapkan
  • Header Content-Transfer-Encoding disetel ke "Binary" karena kami ingin mentransfer file dalam format biner alami
  • Kami menentukan nama file apa yang harus digunakan saat file diunduh. Ini adalah nama yang akan ditampilkan saat pengguna diminta untuk mengunduh file. Perhatikan bahwa ini tidak harus sama dengan nama file aslinya. Misalnya. Anda bisa menambahkan tanggal saat ini ke nama file jika itu masuk akal
  • Dengan menggunakan fungsi ukuran file PHP, kami dapat menghitung ukuran file dalam byte dan menetapkannya sebagai header Content-Length
  • Header Content-Disposition diatur ke "attachment". Akibatnya, browser klien sekarang akan mengetahui bahwa ia harus memperlakukan data sebagai unduhan file
  • Akhirnya, kami mengeluarkan data file PDF kami menggunakan fungsi readfile PHP

Itu dia. Cukup sederhana, bukan?

Sebelumnya telah disebutkan bahwa file zip dan exe diunduh secara otomatis, tanpa menggunakan skrip PHP. Pertama, buat file HTML dengan kode berikut. Di sini, empat elemen jangkar ditentukan untuk mengunduh empat jenis file. Jenis file ini termasuk file TEXT, ZIP, PDF, dan JPG

Unduh. html

< html >
< kepala >
< judul > Unduh File < /title>
< /kepala >
< tubuh >
< p >< a href="abc.txt" > Unduh file TEXT < /a></p>
< p >< a href="horizon.zip" > Unduh file ZIP < /a></p>
< p >< a href="lecture.pdf" > Unduh file PDF < /a></p>
< p >< a href="rose.jpg" > Unduh file JPG < /a></p>
< /tubuh >
< /html >

Keluaran
Kotak dialog berikut akan muncul untuk mengunduh file setelah mengklik tautan file zip. Pengguna kemudian dapat mengunduh file atau membuka file di pengelola arsip

Unduh otomatis pdf di php

Jika Anda mengklik file gambar, gambar akan dibuka secara otomatis di browser, seperti yang ditunjukkan pada output berikut. Anda harus menyimpan file untuk membuat salinan file gambar di drive lokal. Dengan cara yang sama, ketika Anda mengklik tautan file PDF dan TEXT, konten file akan dibuka di browser tanpa mengunduh file. Solusi untuk masalah ini adalah mengunduh file secara paksa menggunakan fungsi readfile() PHP bawaan

Unduh otomatis pdf di php

Unduh File Menggunakan fungsi readfile()

Fungsi readfile() digunakan dalam skrip PHP untuk mengunduh paksa file apa pun dari lokasi saat ini, atau file dengan jalur file. Sintaks fungsi ini diberikan di bawah ini

Sintaksis
int readfile ( string $filename [, bool $use_include_path = false [, resource $context ]] )

Fungsi ini dapat mengambil tiga argumen. Argumen pertama bersifat wajib, dan dua argumen lainnya bersifat opsional. Argumen pertama, $filename, menyimpan nama file atau nama file dengan path yang akan diunduh. Nilai default parameter kedua, $use_include_path, adalah false dan akan disetel ke true jika nama file dengan path digunakan di argumen pertama. Argumen ketiga, $context, digunakan untuk menunjukkan sumber aliran konteks. Fungsi ini mengembalikan jumlah byte yang dibaca dari file yang disebutkan dalam argumen pertama. Penggunaan fungsi ini ditunjukkan dalam dua contoh berikut

Contoh 1. Unduh File dengan Nama File

Dalam contoh ini, kita akan membuat file HTML dengan kode berikut, dimana nama file akan diteruskan sebagai parameter URL bernama path, dan nilai parameter ini akan diteruskan ke file PHP bernama download. php

unduh2. html

< html >
< kepala >
< judul >Unduh File< /judul<>
< /kepala >
< tubuh >
< p >< a href="download.php?path=abc.txt" >Unduh TEXT file< /a></p>
< p >< a href="download.php?path=horizon.zip" >Unduh file ZIP< /a >< /p>
< p >< a href="download.php?path=lecture.pdf" >Unduh file PDF< /a >< /p>
< p >< a href="download.php?path=rose.jpg" >Unduh file JPG< /a >< /p>
< /tubuh >
< /html >

Kami akan membuat file PHP dengan kode berikut untuk mengunduh file secara paksa. Di sini, fungsi isset() digunakan untuk memeriksa apakah $_GET[‘path’] sudah ditentukan. Jika variabel ditentukan, fungsi file_exists() digunakan untuk memeriksa apakah file ada di server. Selanjutnya, fungsi header() digunakan untuk mengatur informasi header yang diperlukan sebelum menggunakan fungsi readfile(). Fungsi basename() digunakan untuk mengambil nama file, dan fungsi filesize() digunakan untuk membaca ukuran file dalam byte, yang akan ditampilkan di kotak dialog pembuka untuk mengunduh file. Fungsi flush() digunakan untuk menghapus buffer keluaran. Fungsi readfile() digunakan dengan nama file saja, di sini

unduh. php



jika(disetel($_GET['path']))
{
//Baca nama file
$filename = $_GET['path'];
//Periksa file ada atau tidak
jika(file_ada($namafile)) {

//Menentukan informasi tajuk
tajuk('Deskripsi-Konten. Transfer Berkas');
tajuk('Tipe-Konten. application/octet-stream');
tajuk("Kontrol-Cache. tanpa cache, harus divalidasi ulang");
header("Berakhir. 0");
tajuk('Disposisi Konten. lampiran; . .namadasar($namafile). '"'');
tajuk('Panjang Konten. ' . ukuran file($namafile));
tajuk('Pragma. publik');

// Hapus buffer keluaran sistem
siram();

// Baca ukuran file
readfile($namafile);

// Hentikan dari skrip
mati();
}
else{
echo "File tidak ada. ";
}
}
kalau tidak
echo "Nama file tidak ditentukan. "
?>

Keluaran
Output berikut akan muncul setelah mengklik tautan unduhan file gambar. Ukuran file mawar. gambar jpg adalah 27. 2 KB, seperti yang ditunjukkan pada kotak dialog. Anda dapat mendownload file dengan memilih tombol radio Save File dan menekan tombol OK

Unduh otomatis pdf di php

Contoh 2. Unduh File dengan File Path

Jika file ada di lokasi file yang diberikan, jalur file harus disebutkan di URL. Dalam contoh ini, kita akan membuat file HTML dengan kode berikut, yang akan meneruskan nama file dengan path file

unduh3. html

< html >
< kepala >
< judul > Unduh File < /title>
< /kepala >
< tubuh >
< p >< a href="download.php?path=downloads/lecture.pdf" > Unduh file PDF < /a></p>
< p >< a href="download2.php?path=downloads/rose.jpg" > Unduh file JPG < /a></p>
< /tubuh >
< /html >

Kami akan membuat file PHP dengan kode berikut untuk mengunduh file dari jalur file. Kode PHP pada contoh sebelumnya akan sedikit dimodifikasi untuk mengunduh file dari jalur yang diberikan. Fungsi clearstatecache() digunakan untuk menghapus cache yang sebelumnya disimpan. Dua argumen digunakan dalam fungsi readfile()

unduh2. php


jika(disetel($_GET['path']))
{
//Baca url
$url = $_GET['jalur'];

//Hapus cache
hapus cachestat();

// Periksa jalur file ada atau tidak
jika(file_ada($url)) {

//Menentukan informasi tajuk
tajuk('Deskripsi-Konten. Transfer Berkas');
tajuk('Tipe-Konten. application/octet-stream');
tajuk('Disposisi Konten. lampiran; . .nama dasar($url). '"'');
tajuk('Panjang Konten. ' . ukuran file($url));
tajuk('Pragma. publik');

// Hapus buffer keluaran sistem
siram();

// Baca ukuran file
readfile($url,benar);

// Hentikan dari skrip
mati();
}
else{
echo "Jalur file tidak ada. ";
}
}
echo "Jalur file tidak ditentukan. "

?>

Keluaran
Setelah tautan unduhan file PDF diklik, output berikut akan muncul

Unduh otomatis pdf di php

Video tutorial

Kesimpulan

Artikel ini memberikan cara sederhana untuk mengunduh paksa file apa pun menggunakan skrip PHP, untuk membantu pembaca menambahkan fitur unduhan dalam skrip mereka

Bagaimana cara memaksa mengunduh file PDF di PHP?

Dalam PHP, hal ini dapat dilakukan dengan menggunakan fungsi readfile() . Fungsi utama readfile() adalah untuk menampilkan file. Saat mengklik salah satu hyperlink, file terkait akan diunduh oleh browser seperti yang ditunjukkan.

Bagaimana cara mengunduh file secara otomatis di PHP?

PHP memungkinkan Anda mengunduh file dengan mudah menggunakan fungsi readfile() bawaan. Fungsi readfile() membaca file dan menulisnya ke buffer keluaran. .
header('Tipe-Konten. aplikasi/octet-stream');
header("Pengkodean-Transfer-Konten. Biner");

Bagaimana cara menghasilkan dan mengunduh PDF dalam PHP?

Php memerlukan('fpdf. php'); . ' ,1,0,'R',salah,'https. // www. plus2net. com');

Bagaimana cara mengunduh PDF dari database di PHP?

Kami akan menggunakan fungsi FPDF libs untuk menghasilkan file pdf dengan header dan footer. .
Langkah 1. Kami akan membuat tabel karyawan ke dalam database MySQL
Langkah 2. Mari hubungkan database MySQL dengan PHP. Kami akan membuat koneksi. .
Langkah 3. Kami akan membuat generate_pdf. php dan tambahkan kode di bawah ini
Langkah 4. Kita akan membuat index