Cách sử dụng PHP để bắt buộc tải xuống tệp

Khi bạn nghĩ về nó, trình duyệt web là những kỳ công tuyệt vời của lập trình phức tạp. Chúng là công cụ là một phần trong cuộc sống hàng ngày của chúng tôi - được sử dụng cho mọi thứ từ việc kiểm tra tình trạng của bạn bè và gia đình, giao tiếp với những người đó, mua hàng, xem video, chăm sóc cuộc sống tài chính của chúng tôi và rất nhiều hơn. Như phổ biến như trình duyệt trong cuộc sống của chúng tôi, thực tế là hầu hết mọi người không đánh giá cao như thế nào họ thực sự hữu ích.

Đằng sau hậu trường

Một điều mà các trình duyệt làm đằng sau hậu trường là cố gắng thực hiện tất cả các nhấp chuột mà một người thực hiện trong một phiên duyệt web thực sự làm điều gì đó. Điều này có nghĩa là ngày càng nhiều loại tệp có thể được mở để xem trực tiếp trong trình duyệt web.

Hầu hết thời gian, đây là một điều tốt, vì nó có thể rất bực bội khi nhấp vào một liên kết đến một tài liệu bạn muốn đọc và sau đó phải đợi cho nó tải xuống và cuối cùng mở trên máy tính của bạn. Sự thất vọng đó đạt đến cấp độ tiếp theo khi bạn đợi bản tải xuống này, chỉ để khám phá ra rằng bạn không có chương trình phù hợp để mở tài liệu. Những ngày này, điều đó hiếm khi xảy ra bởi vì các trình duyệt thực sự, hiển thị tài liệu trực tiếp nội tuyến. Ví dụ: tệp PDF không tải xuống theo mặc định. Thay vào đó, chúng hiển thị trực tiếp trong trình duyệt web tương tự như cách trang web hiển thị.

Điều gì xảy ra nếu bạn có một tệp mà bạn muốn mọi người tải xuống thay vì xem trực tiếp trong trình duyệt web?

Nếu đó là tệp HTML hoặc PDF , bạn không thể chỉ đăng liên kết tới tài liệu đó vì (như chúng tôi vừa mới đề cập) trình duyệt web sẽ tự động mở các tài liệu đó và hiển thị chúng trực tuyến. Để làm cho các tệp này tải xuống máy tính của một người, thay vào đó bạn cần thực hiện một số thủ thuật sử dụng PHP.

PHP cho phép bạn thay đổi tiêu đề HTTP của các tệp mà bạn đang viết.

Quá trình này làm cho nó để bạn có thể buộc một tập tin được tải xuống mà bình thường trình duyệt sẽ tải trong cùng một cửa sổ. Điều này là hoàn hảo cho các tệp như PDF, tệp tài liệu, hình ảnh và video mà bạn muốn khách hàng của mình tải xuống thay vì sử dụng trực tuyến trực tiếp từ trình duyệt.

Bạn sẽ cần PHP trên máy chủ web, nơi tệp của bạn sẽ được lưu trữ, tệp cần tải xuống và loại MIME của tệp được đề cập.

Làm như thế nào

  1. Tải lên tệp bạn muốn cung cấp để tải xuống máy chủ web của bạn. Ví dụ: giả sử bạn có tệp PDF mà bạn muốn mọi người tải xuống khi họ nhấp vào liên kết. Trước tiên, bạn sẽ tải tệp đó lên môi trường lưu trữ của trang web của bạn.
    huge_document.pdf
  2. Chỉnh sửa tệp PHP mới trong trình chỉnh sửa web của bạn - để dễ sử dụng, chúng tôi khuyên bạn nên đặt tên giống với tệp đã tải xuống của bạn, chỉ với phần mở rộng .php. Ví dụ:
    huge_document.php
  3. Mở khối PHP trong tài liệu của bạn:
  4. Trên dòng tiếp theo, đặt tiêu đề HTTP:
    header ("Content-disposition: attachment; filename = huge_document.pdf");
  5. Sau đó, đặt kiểu MIME của tệp:
    header ("Content-type: application / pdf");
  6. Trỏ tới tệp bạn muốn tải xuống:
    readfile ("huge_document.pdf");
  7. Sau đó đóng khối PHP và lưu tệp:
    ?>
  1. Tệp PHP của bạn sẽ trông giống như sau:
    header ("Content-disposition: attachment; filename = huge_document.pdf");
    header ("Content-type: application / pdf");
    readfile ("huge_document.pdf");
    ?>
  2. Liên kết tới tệp PHP của bạn dưới dạng liên kết tải xuống từ trang web. Ví dụ:
    Tải xuống tài liệu khổng lồ của tôi (PDF)

Không nên có không gian hoặc vận chuyển trả về bất cứ nơi nào trong tệp (ngoại trừ sau dấu chấm phẩy). Các dòng trống sẽ khiến PHP mặc định thành văn bản / văn bản kiểu MIME và tệp của bạn sẽ không tải xuống.