Tải xuống tệp PHP

Nếu bạn muốn tạo các loại tệp hoặc hình ảnh khác nhau, tải tệp trực tiếp vào ổ đĩa của người dùng bằng PHP, bạn có thể chạy hàm readfile[]

Hãy xem cách thực hiện trong ví dụ tạo thư viện hình ảnh, điều này sẽ giúp người dùng tải xuống các tệp hình ảnh chỉ bằng một cú nhấp chuột

Trong ví dụ dưới đây, một bộ sưu tập hình ảnh. php được tạo và một mã được đặt bên trong nó

Vì vậy, trong ví dụ trên, liên kết tải xuống trỏ đến tệp tải xuống. tập tin php. Đến lượt nó, URL bao gồm tên tệp hình ảnh, giống như một chuỗi truy vấn. Ngoài ra, bạn có thể nhận thấy rằng hàm urlencode[] được áp dụng để mã hóa tên tệp hình ảnh theo cách mà chúng có thể được chuyển một cách an toàn giống như tham số URL. Lý do là tên tệp có thể bao gồm các ký tự URL không an toàn. Toàn bộ mã tải xuống. php, buộc tải xuống hình ảnh trông như sau

Các định dạng tệp khác như pdf, doc, v.v. cũng có thể được tải xuống theo cách đã trình bày ở trên

Điều quan trọng cần lưu ý là trong ví dụ trên, biểu thức chính quy [dòng 8] không cho phép các tệp có tên bắt đầu hoặc kết thúc bằng dấu chấm [. ]. Ví dụ: bạn có thể sử dụng tên tệp như sách. jpg hoặc Sách. jpg nhưng không thể sử dụng sách. jpg. ,. diều. jpg, v.v.

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

Hàm đọc tệp PHP []

cú pháp

tên tệp $. đại diện cho tên tập tin

$use_include_path. nó là tham số tùy chọn. Đó là theo mặc định sai. Bạn có thể đặt nó thành true để tìm kiếm tệp trong bao gồm_path

Tôi gặp vấn đề tương tự với OP khi nâng cấp php5 từ phiên bản cũ hơn lên 5. 5. 9, đây là phiên bản được cài đặt với Mint 17

Tôi đang chạy thiết lập LAMP trên một máy trong mạng cục bộ của mình mà tôi sử dụng để xem trước các thay đổi đối với trang web trước khi tải những thay đổi đó lên máy chủ trực tiếp thực tế. Vì vậy, tôi duy trì một bản sao địa phương hoàn hảo của trang web thực tế

Sau khi nâng cấp, các tệp chạy và hiển thị hoàn hảo trên trang web thực tế sẽ không hiển thị hoặc chỉ hiển thị html trên máy cục bộ. PHP không được phân tích cú pháp. Lệnh phpinfo[] đã hoạt động, vì vậy tôi biết rằng php đang hoạt động theo cách khác. Nhật ký không tạo ra lỗi. Xem nguồn trang cho tôi thấy mã php thực tế

Thông thường, bạn không nhất thiết phải sử dụng bất kỳ ngôn ngữ kịch bản phía máy chủ 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 chung, bạn chỉ cần tạo một siêu liên kết 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 xuống tệp đó

Download Zip file
Download PDF file
Download Image file
Download EXE file

Nhấp vào liên kết trỏ đến tệp PDF hoặc tệp Hình ảnh sẽ không trực tiếp tải xuống ổ cứng của bạn. Nó sẽ chỉ mở tệp trong trình duyệt của bạn. Hơn nữa bạn có thể lưu nó vào ổ cứng của bạn. Tuy nhiên, các tệp zip và exe được tự động tải xuống ổ cứng theo mặc định

Buộc tải xuống bằng PHP

Bạn có thể buộc hình ảnh hoặc loại tệp khác tải trực tiếp xuống ổ cứng của người dùng bằng hàm PHP readfile[]. Ở đây chúng ta sẽ tạo một thư viện hình ảnh đơn giản cho phép người dùng tải xuống các tệp hình ảnh từ trình duyệt chỉ bằng một cú nhấp chuột

Hãy tạo một tệp có tên "image-gallery. php" và đặt đoạn mã sau vào bên trong nó





Simple Image Gallery



    ';
            echo '';
            echo '

Download

'; echo '

'; } ?>

Nếu bạn xem kỹ đoạn mã ví dụ trên, bạn sẽ thấy liên kết tải xuống có dạng "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 tôi đã sử dụng hàm PHP urlencode[] để mã hóa tên tệp hình ảnh để nó có thể được chuyển an toàn dưới dạng tham số URL, vì tên tệp có thể chứa các ký tự URL không an toàn

Đây là mã hoàn chỉnh của "tải xuống. php", buộc tải xuống hình ảnh

Tương tự, bạn có thể buộc tải xuống các định dạng tệp khác như tệp word doc, tệp pdf, v.v.

Biểu thức chính quy trong ví dụ trên [dòng số 8] sẽ đơn giản là không cho phép các tệp có tên bắt đầu hoặc kết thúc bằng ký tự dấu chấm [.], ví dụ: nó cho phép các tên tệp như kites.jpg hoặc





Simple Image Gallery



    ';
            echo '';
            echo '

Download

'; echo '
0,




Simple Image Gallery



    ';
            echo '';
            echo '

Download

'; echo '
1 nhưng không

Tại sao tệp PHP của tôi đang tải xuống?

Điều này thường là do mã xử lý không đúng . bên trong. htaccess, bạn sẽ muốn đảm bảo mã trình xử lý khớp với phiên bản php của bạn. Nếu không, các tệp php có thể cố tải xuống thay vì xử lý.

Làm cách nào để tải xuống tệp 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. .

Chủ Đề