PHP buộc tải xuống tệp từ URL
Đôi khi, bạn có thể cần yêu cầu người dùng tải xuống tệp khi họ nhấp vào liên kết trên trang web của bạn mà không cần mở hoặc phát trực tuyến tệp đó trong trình duyệt của họ. Trong bài viết này, chúng ta sẽ xem xét cách buộc tải xuống tệp trong PHP. Điều này hữu ích trong trường hợp tệp của bạn có nhiều tệp âm thanh/video mà người dùng thường phát trực tuyến trên trình duyệt của họ mà không tải xuống, trong trường hợp đó, tải máy chủ của bạn tăng do có quá nhiều kết nối mở Show
Trên thực tế, bạn không cần sử dụng bất kỳ mã PHP nào để buộc tải xuống tệp. Bạn có thể chỉ cần đặt tiêu đề sắp xếp nội dung và tiêu đề loại nội dung của URL trong. htaccess của máy chủ Apache của bạn. Điều này sẽ buộc Apache gửi các tệp tải xuống. Đây là cách buộc tải xuống trong Apache Cách buộc tải xuống tệp trong PHPDưới đây là các bước để buộc tải xuống tệp trong PHP 1. Tạo tập tin phpMở terminal và tạo tải xuống. tập tin php. Cái này sẽ có chức năng chính là phục vụ tải file. Chúng tôi đã tạo tệp trong thư mục gốc trang web của chúng tôi /var/www/html. Nếu thư mục gốc trang web của bạn khác, vui lòng cập nhật đường dẫn sau theo yêu cầu của bạn $ sudo vi /var/www/html/download.php Chúng ta sẽ sử dụng hàm readfile() để phục vụ việc tải file. Thêm các dòng sau vào tập tin trên. Các tệp của chúng tôi được đặt tại thư mục /var/www/html/downloads/. Nếu các tệp của bạn được đặt ở một vị trí khác, vui lòng cập nhật đường dẫn bên dưới được in đậm theo yêu cầu của bạn /var/www/html/downloads/" . $file; // Process download if(file_exists($filepath)) { header('Content-Description: File Transfer'); header('Content-Type: application/octet-stream'); header('Content-Disposition: attachment; filename="' .basename($filepath).'"'); header('Expires: 0'); header('Cache-Control: must-revalidate'); header('Pragma: public'); header('Content-Length: ' . filesize($filepath)); // Flush system output buffer flush(); readfile($filepath); die(); } else { http_response_code(404); die(); } } else { die("Download cannot be processed"); } } ?> 2. Tạo chỉ mục. htmlTiếp theo, chúng ta sẽ tạo một chỉ mục. tệp html có liên kết để tải xuống tệp. Mở terminal và chạy lệnh sau để tạo chỉ mục. html $ sudo vi index.html Thêm các dòng sau vào chỉ mục. tệp html Download'; } ?> Tệp trên sẽ chỉ tạo hai liên kết neo để tải xuống tệp Khi bạn nhấp vào một trong các liên kết trong chỉ mục của mình. html, nó sẽ tự động gửi yêu cầu tải xuống. php sẽ bắt đầu tải xuống tệp Buộc tải xuống tệp rất hữu ích trong trường hợp trang web của bạn chứa nhiều tệp âm thanh/video thường được phát trực tuyến trên mạng. Khi bạn buộc tải xuống, máy chủ của bạn sẽ gửi tệp và đóng kết nối. Nhưng khi người dùng truyền phát tệp, nó sẽ giữ kết nối mở và tăng tải máy chủ một cách không cần thiết Phương pháp trên rất hữu ích nếu bạn muốn buộc người dùng tải xuống nhưng không muốn các bản tải xuống có thể truy cập công khai Tuy nhiên, như đã đề cập trước đó, bạn cũng có thể buộc tải xuống trong Apache mà không cần bất kỳ mã hóa PHP nào. Bạn cũng có thể đặt các tệp này trong một URL có thể truy cập công khai để việc nhấp vào chúng sẽ tự động bắt đầu tải xuống trong trình duyệt Tóm lược. 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 Giới thiệu về hàm readfile() trong PHPHàm Đây là cú pháp của hàm
Hàm
Hàm 2 nếu nó không đọc được Ví dụ về tệp tải xuống PHPVí dụ sau đây cho biết cách tải xuống tệp 3 bằng cách sử dụng ví dụ về hàm readfile()
Làm cách nào để buộc tải xuống tệp trong PHP?Buộc tải xuống tệp bằng PHP. Chúng tôi sẽ sử dụng PHP ở đây làm ngôn ngữ kịch bản phía máy chủ. 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ải xuống tệp từ URL PHP?Các bước để tải tệp xuống. . Khởi tạo URL tệp cho biến Tạo phiên cURL Khai báo một biến và lưu tên thư mục lưu file tải về Sử dụng hàm basename() để trả về tên cơ sở tệp nếu đường dẫn tệp được cung cấp dưới dạng tham số Lưu tệp vào vị trí đã cho Làm cách nào để buộc tải xuống tệp từ máy chủ từ xa trong PHP?Bạn có thể tải xuống bất kỳ loại tệp nào (hình ảnh, ZIP, video, âm thanh, v.v.) từ máy chủ từ xa bằng PHP. Sử dụng hàm readfile() với tiêu đề Loại nội dung application/x-file-to-save, để tải xuống tệp ZIP từ URL từ xa bằng PHP. header("Kiểu nội dung. application/x-file-to-save");
Làm cách nào để tải xuống tệp zip từ URL trong PHP?giải nén. php . tải tệp này vào thư mục bạn muốn trích xuất nội dung của tệp đã tải xuống. tập tin nén chạy tập lệnh trong trình duyệt của bạn. tôi. e. http. // localhost/giải nén. php sau khi tập lệnh được thực thi thành công, hãy đăng nhập qua ftp và xóa tập lệnh này |