Bài học PHP 14 – Download File trong PHP

0
50

Bài học PHP 14 – Download File trong PHP

Sau bài học hướng dẫn upload file trong php ở buổi học trước, hôm nay chúng ta sẽ cùng tìm hiểu về cách download file trong php.

Qúa trình Download một File chính là quá trình đọc nội dung của File đó rồi trả về cho Trình duyệt để xử lý

Để bắt đầu xây dựng một chương trình Download File đơn giản chúng ta phải trải qua các quy trình sau:

1. Quy trình mở và đóng một File thông thường

Đây chính là quá trình mở và đóng một File muốn Download theo cách đọc file thông thường ở dạng nhị phân binary

Ví dụ :

2. Quá trình thông báo dữ liệu trả về cho Trình duyệt

Đây chính là quá trình thông báo cho Trình duyệt biết rằng dữ liệu trả về từ server là dữ liệu dạng nhị phân chứ không phải là dữ liệu văn bản HTML thông thường. Để làm được điều này chúng ta sử dụng câu lệnh sau :

Ví dụ:

3. Quá trình thông báo dung lượng File

Đây chính là quá trình báo cho Browser biết dung lượng của File sẽ được tải xuống

Để làm điều này chúng ta sử dụng câu lệnh sau :

Ví dụ :

 

4. Quá trình đọc nội dung File

Đây chính là quá trình đọc nội dung của  File và echo lại cho Trình duyệt Download.

Câu lệnh: $fread = fpassthru($fopen) tương đương với 2 lệnh sau:

$content = fread($fopen, filesize($fpath));

echo $content;

=>>> Học lập trình php cơ bản miễn phí – xem tại đây.

5. Quá trình lưu và đổi tên File

Đây chính là quá trình sẽ báo cho Trình duyệt biết là nên Download và Save File thay vì Open. Đồng thời  sẽ báo cho Trình duyệt biết tên của file đang được Download.

Để làm việc này chúng ta sử dụng câu lệnh :

Ví dụ :

6. Một số kiểu dữ liệu tương ứng với các kiểu File thông dụng

Mặc định PHP sẽ trả về dữ liệu kiểu text/html cho browser. Một số kiểu dữ liệu tương ứng với các kiểu file thông dụng:

  • .GIF: image/gif
  • .JPG: image/jpeg
  • .PNG: image/png
  • .WAV: audio/wav
  • .MP3: audio/mpeg3
  • .DOC: application/msword
  • .PDF: application/pdf

Xem thêm các bài học liên quan tại đây:

Tác giả : Thiện Nguyễn

[Total: 0    Average: 0/5]

LEAVE A REPLY

Please enter your comment!
Please enter your name here