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 >< a href="horizon.zip" > Unduh file ZIP < /a>
< p >< a href="lecture.pdf" > Unduh file PDF < /a>
< p >< a href="rose.jpg" > Unduh file JPG < /a>
< /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


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 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 >< 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

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

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. .

Postingan terbaru

LIHAT SEMUA