Hướng dẫn dùng vcruntime download trong PHP

Nội dung chính

  • Chức năng Download file sử dụng PHP
  • Tổng kết
  • Video Thao tác với FILE trong PHP
  • Hướng dẫn chi tiết
  • Đóng file
  • file_get_contents
  • file_put_contents

Ở bài trước chúng ta đã học về upload file, hôm nay chúng ta sẽ học về cách Download file sử dụng PHP.

Download File trong PHP

Bình 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 link 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ụ:

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

Click vào đường link trỏ đến tệp PDF hoặc tệp Image sẽ không tải file xuống máy tính.

Nó sẽ chỉ mở file trong trình duyệt. Sau đó bạn có thể lưu nó. Tuy nhiên, các tệp zip và exe thì được tự động tải xuống.

Chức năng Download file sử dụng PHP

Bạn có thể bắt buộc hình ảnh hoặc loại file 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 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ú click chuột.

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





Simple Image Gallery



    ';
            echo '';
            echo '

Download

'; echo '
'; } ?>

Nếu bạn xem mã ví dụ trên một cách cẩn thận, bạn sẽ thấy liên kết tải xuống dẫn đến file ‘download.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 an toàn dưới dạng tham số URL, 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 ‘download.php‘ để bắt buộc tải xuống hình ảnh.

Tổng kết

Như vậy, bạn đã biết sử dụng PHP để bắt buộc Download file xuống máy tính người dùng. Bạn cũng có thể buộc tải xuống các định dạng tệp khác như word doc, tệp pdf, v.v.

Trong bài học này, mình sẽ hướng dẫn các bạn một số những thao tác cơ bản về thao tác với FILE trong PHP như mở file, lấy dữ liệu, ghi mới, xóa, sửa.

  • Video Thao tác với FILE trong PHP
  • Hướng dẫn chi tiết
    • Mở file
    • Ghi file
    • Đóng file
    • file_get_contents
    • file_put_contents

Video Thao tác với FILE trong PHP

Hướng dẫn chi tiết

"Ra đời, cuộc sống bươm chải, có làm vẫn không có ăn" nên phải gắn QUẢNG CÁO

Các bạn cần hosting WordPress nhanh, rẻ và dễ sử dụng có free SLL hãy chọn Azdigi nhé.
Link đăng ký: NHẬN NGAY ƯU ĐÃI
Nếu các bạn mua hosting từ link trên, mình sẽ có một ít tiền để duy trì. Cảm ơn

Mở file

Để mở một file chúng tôi sẽ dùng hàm fopen($path, $mode).

Trong đó

  • path: đường dẫn file
  • mode: chế độ mở file (mở để ghi, xem, sửa, tạo file mới …).
$myfile = fopen('1.txt','r');

Chúng ta có một số mode như bảng sau:

Có làm thì mới có ăn như ai đó từng nói - Vài dòng ngắn cho QUẢNG CÁO nhé

Các bạn cần hosting WordPress nhanh, rẻ và dễ sử dụng có free SLL hãy chọn Azdigi nhé.
Link đăng ký: NHẬN NGAY ƯU ĐÃI
Nếu các bạn đăng ký và sử dụng hosting từ link trên, Góc Làm Web sẽ có một ít tiền để duy trì. 

File có nghĩa là tập tin nhưng mình gọi là file cho ngắn gọn câu chữ nhé.

ModesDescription
r Mở file chỉ để đọc. Con trỏ bắt đầu từ đầu file.
w Mở ra chỉ để ghi. Xóa toàn bộ nội dung trong file hoặc tạo file mới nếu file chưa tồn tại. Con trỏ bắt đầu từ đầu file.
a Mở ra chỉ để ghi. Giữ lại nội dung file nếu có. Con trỏ bắt đầu ở cuối file. Tạo mới file nếu file chưa tồn tại.
x Tạo mới file để ghi. Trả về FALSE hoặc lỗi nếu file đã tồn tại.
r+ Mở file để đọc/ghi. Con trỏ nằm ở cuối file
w+ Mở file để đọc/ghi. Xóa toàn bộ nội dung trong file hoặc tạo file mới nếu file chưa tồn tại. Con trỏ bắt đầu từ đầu file.
a+ Mở file để đọc/ghi. Giữ lại nội dung file nếu có. Con trỏ bắt đầu ở cuối file. Tạo mới file nếu file chưa tồn tại.
x+ Tạo ra file mới để đọc/ghi. Trả về FALSE hoặc lỗi nếu file đã tồn tại.

Đọc nội dung file

Để đọc nội dung file đã mở, chúng ta dùng hàm fread( $filename, $filesize);

  • file –  file cần đọc.
  • filesize – Số byte tối đa cần đọc.
$myfile = fopen('1.txt','r');
$content = fread($myfile, filesize('1.txt'));
var_dump($content);

Chúng ta dùng hàm fopen để lấy giá trị cho file. Đối với tham số filesize, chúng ta dùng hàm filesize(‘đường dẫn file’);

Ghi file

Để ghi dữ liệu vào file, chúng ta sẽ dùng hàm fwrite( $file,  $content ).

$myfile = fopen('2.txt','a+');
$content = 'Đây là nội dung file 2 + 1';
fwrite($myfile, $content);
fclose($myfile);

Đóng file

Sau khi mở, ghi, đọc, các bạn cần phải đóng file bằng hàm fclose($file);

file_get_contents

Cách sử dụng: file_get_contents( $filename, $use_include_path , $context , $offset , $maxlen);

  • $filename là đường dẫn tới file cần đọc.
  • $use_include_path là tham số, quy định có sử dụng hằng số FILE_USE_INCLUDE_PATH làm môi trường tìm kiếm file hay không.
  • Từ PHP 5.0.0 đến nay, $use_include_path sẽ mang hai giá trị FILE_USE_INCLUDE_PATH  hoặc NULL.
  • $context  là kết quả trả về của hàm stream_context_create(), nếu bạn không cần sử dụng ngữ cảnh tùy chỉnh có thể bỏ qua tham số này.
  • $offset là vị trí bắt đầu đọc, nếu mang giá trị âm, việc đọc sẽ bắt đầu từ cuối file. nếu không được truyền vào, việc đọc sẽ bắt đầu từ đầu file.
  • $maxlen là chiều dài tối đa mà hàm sẽ đọc. Nếu không truyền hàm sẽ đọc đến cuối file.

Hàm file_get_contents dùng để đọc nhanh dữ liệu trong file thay vì phải open, read, close.

$content = file_get_contents('3.txt');
echo $content;

file_put_contents

Cú pháp: file_put_contents( $filename, $data, $flag);

Trong đó:

$filename là đường dẫn tới file.

$data là nội dung của file.

$flag là tham số, mang một trong các giá trị sau:

  • FILE_USE_INCLUDE_PATH : hàm sẽ tìm kiếm $filename trong include directory.
  • FILE_APPEND : nếu file đã tồn tại, hám sẽ không ghi đè $data vào nội dung sẵn có mà sẽ nối $data vào cuối file.

Tài liệu bài học: Download

Tham khảo thêm:

https://www.w3schools.com/php/php_file_open.asp

https://www.w3schools.com/php/php_file_create.asp

Nếu có thắc mắc, hãy đặt câu hỏi bằng cách comment bên dưới, qua email, hoặc nhắn tin qua Fanpage Góc làm web.

Liên hệ