Tải xuống PDF bằng PHP

Bản tóm tắt. trong hướng dẫn này, bạn sẽ học cách tải xuống một tệp trong PHP bằng cách sử dụng hàm readfile()

Giới thiệu về hàm readfile() trong PHP

Hàm readfile() đọc dữ liệu từ một tệp và ghi nó vào bộ đệm đầu ra

Đây là cú pháp của hàm readfile()

readfile ( string $filename , bool $use_include_path = false , resource $context = ? ) : int|false

Code language: PHP (php)

Hàm readfile() có các tham số sau

  • $filename là đường dẫn đến tệp
  • $use_include_path nếu được đặt thành true, hàm sẽ tìm kiếm tệp trong đường dẫn bao gồm
  • $filename = 'readme.pdf'; if (file_exists($filename)) { header('Content-Description: File Transfer'); header('Content-Type: application/octet-stream'); header('Content-Disposition: attachment; filename="' . basename($filename) . '"'); header('Expires: 0'); header('Cache-Control: must-revalidate'); header('Pragma: public'); header('Content-Length: ' . filesize($filename)); readfile($filename); exit; }

    Code language: HTML, XML (xml)
    0 chỉ định ngữ cảnh luồng

Hàm readfile() trả về số byte nếu nó đọc thành công dữ liệu từ tệp hoặc

$filename = 'readme.pdf'; if (file_exists($filename)) { header('Content-Description: File Transfer'); header('Content-Type: application/octet-stream'); header('Content-Disposition: attachment; filename="' . basename($filename) . '"'); header('Expires: 0'); header('Cache-Control: must-revalidate'); header('Pragma: public'); header('Content-Length: ' . filesize($filename)); readfile($filename); exit; }

Code language: HTML, XML (xml)
2 nếu nó không đọc được

Ví dụ về tệp tải xuống PHP

Ví dụ sau đây cho thấy cách tải xuống tệp

$filename = 'readme.pdf'; if (file_exists($filename)) { header('Content-Description: File Transfer'); header('Content-Type: application/octet-stream'); header('Content-Disposition: attachment; filename="' . basename($filename) . '"'); header('Expires: 0'); header('Cache-Control: must-revalidate'); header('Pragma: public'); header('Content-Length: ' . filesize($filename)); readfile($filename); exit; }

Code language: HTML, XML (xml)
3 bằng cách sử dụng ví dụ về hàm readfile()

Đây là hướng dẫn ngắn về cách buộc tải xuống tệp PDF bằng PHP. Trong hướng dẫn này, tôi sẽ chỉ cho bạn cách buộc trình duyệt tải xuống tệp PDF dưới dạng tệp đính kèm thay vì hiển thị trực tiếp

Hãy xem đoạn script PHP sau

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

Trong đoạn mã trên

  • Chúng tôi đã tham chiếu đường dẫn đến tệp PDF mà chúng tôi muốn tải xuống. Trong trường hợp này, tệp được đề cập là hướng dẫn. pdf và nó nằm trong cùng thư mục với tập lệnh PHP của chúng tôi. Điều quan trọng cần lưu ý là bạn cũng có thể sử dụng đường dẫn đầy đủ tới tệp PDF của mình nếu tệp nằm trong thư mục khác
  • Chúng tôi đã sử dụng chức năng tiêu đề của PHP để đặt phản hồi Kiểu nội dung thành “application/pdf“. Tiêu đề này cho trình duyệt biết loại dữ liệu mà nó mong đợi
  • Tiêu đề Content-Transfer-Encoding được đặt thành “Binary” vì chúng tôi muốn chuyển tệp ở định dạng nhị phân tự nhiên
  • Chúng tôi đã chỉ định tên tệp sẽ được sử dụng khi tệp được tải xuống. Đây là tên sẽ được hiển thị khi người dùng được nhắc tải xuống tệp. Lưu ý rằng tên này không nhất thiết phải giống với tên tệp gốc. Ví dụ. Bạn có thể thêm ngày hiện tại vào tên tệp nếu điều đó hợp lý
  • Sử dụng hàm kích thước tệp của PHP, chúng tôi có thể tính toán kích thước của tệp theo byte và đặt kích thước đó làm tiêu đề Độ dài nội dung
  • Tiêu đề Bố trí nội dung được đặt thành "tệp đính kèm". Do đó, trình duyệt của khách hàng sẽ biết rằng nó sẽ coi dữ liệu là tệp tải xuống
  • Cuối cùng, chúng tôi đã xuất dữ liệu của tệp PDF của mình bằng hàm readfile của PHP

Đó là nó. Khá đơn giản, phải không?

Làm cách nào để tải xuống tệp PDF trong PHP?

Để tải xuống PDF từ liên kết HTML bằng PHP với sự trợ giúp của hàm header() trong php . Hàm header() được sử dụng để gửi tiêu đề HTTP thô. Đôi khi, nó muốn người dùng được nhắc lưu dữ liệu, chẳng hạn như PDF đã tạo. tiêu đề ("Độ dài nội dung. ".

Làm cách nào để buộc tải xuống tệp PDF trong PHP?

Trong PHP, điều này có thể được thực hiện bằng cách sử dụng hàm readfile() . Chức năng chính của readfile() là xuất ra một tập tin. Khi nhấp vào bất kỳ siêu liên kết nào, tệp tương ứng sẽ được trình duyệt tải xuống như được hiển thị.

Làm cách nào để tạo một tệp có thể tải xuống bằng PHP?

PHP cho phép bạn tải xuống tệp dễ dàng bằng hàm readfile() tích hợp. Hàm readfile() đọc một tệp và ghi nó vào bộ đệm đầu ra. .
tiêu đề ('Loại nội dung. ứng dụng/octet-stream');
tiêu đề ("Mã hóa chuyển nội dung. utf-8");

Làm cách nào để tải xuống tệp từ đường dẫn tệp trong PHP?

Hàm readfile() được sử dụng trong tập lệnh PHP để buộc tải xuống bất kỳ tệp nào ở vị trí hiện tại hoặc tệp có đường dẫn tệp.