Nhấp để tải xuống php
Chúng ta đã biết về Upload file trong PHP, vậy trong quá trình sử dụng, người dùng muốn thao tác download file thì phải làm sao? . Cùng theo dõi nhé Show
lục mục lục1. Tải xuống tệp trong PHP 2. Chức năng Tải xuống tệp sử dụng PHP 1. Tải xuống tệp trong PHPThông thường, bạn không nhất thiết phải sử dụng bất kỳ ngôn ngữ nào như PHP để tải xuống hình ảnh, tệp zip, tài liệu pdf, tệp exe, v. v… Nếu loại tệp đó được lưu trữ trong một thư mục có thể truy cập công khai, bạn chỉ cần tạo một đường liên kết con trỏ đến tệp đó và bất cứ khi nào người dùng nhấp vào liên kết, trình duyệt sẽ tự động tải tệp đó xuống Ví dụ
Nhấp vào đường liên kết trỏ đến tệp PDF hoặc tệp Hình ảnh sẽ không tải tệp xuống máy tính Nó sẽ chỉ mở tệp trong trình duyệt. Sau đó bạn có thể lưu nó. Tuy nhiên, các tệp zip và exe thì tự động tải xuống 2. Chức năng Tải xuống tệp sử dụng PHPBạn có thể bắt buộc cấu hình ảnh hoặc loại tệp khác tải trực tiếp xuống máy tính của người dùng bằng Hàm readfile() của PHP Ở đây chúng ta sẽ tạo một bộ sưu tập ảnh đơn giản cho phép người dùng tải xuống các tệp ảnh từ trình duyệt chỉ bằng một cú nhấp chuột Vui lòng tạo một tệp có tên là 'image-gallery'. php’ and set after code in it
Nếu bạn xem mã ví dụ một cách cẩn thận, bạn sẽ thấy liên kết tải xuống dẫn đến tệp 'tải xuống. php’, URL cũng chứa tên tệp hình ảnh dưới dạng chuỗi truy vấn Ngoài ra, chúng ta đã sử dụng hàm urlencode() của PHP để mã hóa tên tệp hình ảnh để nó có thể được truyền dưới dạng URL tham số toàn phần, bởi vì tên tệp có thể chứa các ký tự không an toàn Đây là mã hoàn chỉnh của tệp 'tải xuống. php‘ để bắt buộc tải xuống hình ảnh
Trên đây là bài viết của eLib. VN về download file trong PHP. Bạn cũng có thể buộc phải tải xuống các định dạng tệp khác như tệp doc, tệp pdf, v. v. hy vọng bài viết hữu ích cho những bạn đang nghiên cứu về lập trình PHP, chúc các bạn thành công Chủ đề này có lẽ cũng rất nhiều bạn chưa biết và muốn tìm hiểu nó để áp dụng vào project của mình, nên khuya khuya ngồi buồn nhớ vợ nhớ con nên mình làm tuts cho đời tươi đẹp hơn Bài viết này đã được đăng tại freetuts. net , không được sao chép dưới mọi hình thức. Cũng như thường lệ, trước tiên mình xin giới thiệu một vài kỹ thuật mình có sử dụng liên quan trong tut này
Trong bài mình không áp dụng kết nối cơ sở dữ liệu, nhưng ở từng dòng lệnh comment mình có hướng dẫn các bạn kết nối cơ sở dữ liệu và đăng nhập. Tại vì mình không muốn nâng niu với SQL, như vậy sẽ rút gọn được tut của chúng ta 1. Xây dựng thư viện xử lý người dùng để kiểm tra tải xuốngBạn đã tạo người dùng tệp. php with the content as after Bài viết này đã được đăng tại [free tuts. mạng lưới]
// Mở Session session_start(); class User { var $token_login = 'islogintomycode'; // Thiết lập login function set_logged($username) { $_SESSION[$this->token_login] = array( 'username' => $username ); } function set_not_logged(){ if (isset($_SESSION[$this->token_login])) { unset($_SESSION[$this->token_login]); } } // Lấy thông tin người dùng đã login function get_user_info($key){ if (!empty($_SESSION[$this->token_login]) && isset($_SESSION[$this->token_login][$key])){ return $_SESSION[$this->token_login][$key]; } return false; } // Kiểm tra đã loggin chưa function is_logged(){ return !empty($_SESSION[$this->token_login]); } } // Khởi tạo đối tượng user $user = new User(); Lưu ý. Trong tệp này, tôi đã khởi tạo một đối tượng 3 có mục đích sẵn sàng để các tệp khác yêu cầu sử dụng nó luôn
2. Tạo tệp hiển thị danh sách tệp để tải xuốngBạn đã tạo chỉ mục tệp. php with the content as after
Trong tệp này ở trên cùng tôi có 4mục đích lấy đối tượng người dùng để kiểm tra đăng nhập hay chưa
Đoạn mã dưới đây tôi kiểm tra nếu đăng nhập rồi thì hiển thị nút đăng xuất, còn chưa đăng nhập thì hiển thị nút đăng nhập
is_logged()){ ?> Đăng Xuất Đăng Nhập Và đoạn mã xử lý đăng nhập rồi mới được tải xuống bằng javascript dưới đây thì tôi đã nhận xét rất rõ ràng rồi. Chỉ có một chú thích là tôi đã khởi tạo một biến is_logged và giá trị của nó mà tôi sử dụng mã PHP để gán
// Biến javascript dùng để kiểm tra đã login hay chưa var is_logged = is_logged()) ? 'true' : 'false'; ?>; // Khi click vào các thẻ download $('div a').click(function() { // Nếu như chưa login thì thông báo và chuyển hướng sang trang login // trong này tôi có để một tham số trên url là redirect, tham số này // sẽ được xử lý ở trang login, nghĩa là sau khi login sẽ redirect về // cái trang nằm trong redirect if (!is_logged){ if (confirm('Bạn chưa đăng nhập, vui lòng đăng nhập rồi download')){ window.location = 'login.php?redirect=index.php'; } // Và return false không cho download return false; } // Nếu login rồi thì return true cho phép download return true; });
Bây giờ ta sẽ xử lý việc đăng nhập và đăng xuất nhé 3. Tạo tệp đăng xuấtNếu người dùng nhấp vào nút đăng xuất thì chúng tôi sẽ xóa phiên đăng nhập, vì vậy người dùng sẽ không tải xuống được nữa. Bạn đã tạo tệp đăng xuất với nội dung như sau
set_not_logged(); header('Location:index.php'); ?>
4. Create file loginBạn đã tạo tệp đăng nhập. php with after content
________số 8 Cũng như thường lệ, tôi có yêu cầu người dùng tệp. php để xử lý đăng nhập. Trong này tôi kiểm tra user = admin và password = 123 thì sẽ trả về kết quả là đúng. Nếu bạn muốn kết nối CSDL đã đăng nhập thì sẽ xử lý đoạn code php ở file này nhé
set_logged($username); // Lấy path và redirect $redirect = isset($_GET['redirect']) ? $_GET['redirect'] : 'index.php'; header('Location:'.$redirect); exit(); } } ?>
5. Tạo tệp xử lý tải xuốngYou to note at file index. php with per tag a my cursor href about file download. php và có gán một tham số path=something ( 0). Vì vậy, mục đích tôi muốn khi nhấp vào sẽ chuyển hướng sang tệp tải xuống. php and side page download. php tôi sẽ sử dụng tham số đường dẫn đó để xác định tệp muốn tải xuống bất kỳ Vì vậy bạn đã tạo tệp tải xuống. php and copy this content to
1Lưu ý. Trong tệp này, tôi có định nghĩa một hằng số 1dùng để khai báo đến thư mục tải xuống
6. Bảo mật các tệp tải xuống không cho người dùng truy cập vàoMục đích của ta là không cho người dùng truy cập trực tiếp vào tệp để tải về, vì vậy ta phải sư dụng tệp. htaccess để bảo vệ thư mục đó Bạn đã tạo thư mục tài nguyên cùng cấp với các tệp trên tệp và tạo tệp. htaccess nằm trong thư mục tài nguyên với nội dung là "từ chối tất cả" Như vậy cấu trúc thư mục của chúng ta như sau 7. Lời kếtMình rất muốn chia sẻ sẽ nhiều thứ hơn nhưng thật sự chia sẻ sẽ bằng lời văn thì hơi khó trình bày, mong các bạn thông cảm nhé |