Kết nối

Ép buộc trình duyệt tải tập tin tự động với định dạng bất kỳ trong PHP

2.507 lượt xem 
 
Thể loại: Lập trình Web với PHP 

Giả sử bạn có 1 trang web, trên trang này chứa liên kết tới tập tin bạn cần tải và bạn muốn tập tin này tự động tải về máy khi nhấn chuột lên liên kết đó. Đây là vấn đề mà nhiều lập trình viên thường hay gặp (kể cả chúng tôi) khi phát triển Web. Thực ra, giải pháp rất đơn giản nếu bạn sử dụng PHP và bài viết này sẽ hướng dẫn cách thực hiện.

Nếu bạn để ý, với một liên kết tới tập tin có đuôi .exe, .msi, .pdf, .doc,… thì trình duyệt sẽ có thể tự động tải về các tập tin này. Tuy nhiên, với một số tập tin khác có đuôi là .html, .php, .aspx, .config,… thì trình duyệt lại không cho bạn tải tập tin về hoặc là báo lỗi hoặc là chỉ hiển thị nội dung đã biên dịch thành mã HTML.

Để cho phép tải bất kỳ tập tin nào về tự động, bạn tạo 1 trang tên là download.php với nội dung như sau:

<?php
header("Content-disposition: attachment; filename=taptin.pdf");
header("Content-type: application/pdf");
readfile("taptin.pdf");
?>

Trong ví dụ trên, chúng ta tạo 1 head chứa tên tập tin “taptin.pdf” và dạng của tập tin này là pdf, sau đó dùng hàm readfile để đọc file và tải về máy.

Bạn có thể tạo 1 trang test.html với nội dung chứa liên kết tải về như sau:

<html>
<head>
<title>Tải tập tin tự động PHP --- dammio.com</title>
<meta charset="utf-8">
</head>
<body>
<a href="download.php">Tải về tập tin PDF</a>
</body>
</html>

Nếu bạn xài gói XAMPP để mô phỏng PHP thì bỏ tập tin test.htmldownload.php cũng như đặt tập tin taptin.php vào cùng thư mục htdocs.

Liên quan:  Tạo nhiều form, nhiều nút submit trong 1 form bằng PHP

Tiếp theo, chạy đường dẫn http://localhost/test.html (hoặc http://localhost:8080/test.html) và nhấn vào liên kết để có thể tải về taptin.pdf tự động.

Một số lưu ý với tập tin tải về đó là bạn hạn chế khoảng trắng và ký tự lạ trong tên tập tin để trình duyệt có thể nhận diện tập tin tải về tốt nhất. Ví dụ tập tin có tên “van ban.pdf” thì nên đặt tên lại là “van_ban.pdf“. Chúng tôi chúc bạn thành công!

Trích dẫn bài viết
  • APA:
    Dammio. (2018). Ép buộc trình duyệt tải tập tin tự động với định dạng bất kỳ trong PHP. https://www.dammio.com/2018/11/28/ep-buoc-trinh-duyet-tai-tap-tin-tu-dong-voi-dinh-dang-bat-ky-trong-php.
  • BibTeX:
    @misc{dammio,
    author = {Dammio},
    title = {Ép buộc trình duyệt tải tập tin tự động với định dạng bất kỳ trong PHP},
    year = {2018},
    url = {https://www.dammio.com/2018/11/28/ep-buoc-trinh-duyet-tai-tap-tin-tu-dong-voi-dinh-dang-bat-ky-trong-php},
    urldate = {2024-05-17}
    }
Theo dõi
Thông báo của
guest
0 Góp ý
Phản hồi nội tuyến
Xem tất cả bình luận
0
Rất thích suy nghĩ của bạn, hãy bình luận.x