Hướng dẫn php file download - tải xuống tệp php

Hướng dẫn php file download - tải xuống tệp php

Ở 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 sử dụng PHP.

Hướng dẫn php file download - tải xuống tệp 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.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.‘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. 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.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. 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.

Bài viết mớiDownload file sử dụng PHP.

Ở 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.

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

Ví dụ:

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 PHPhàm readfile() của 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.





Simple Image Gallery



    ';
            echo '';
            echo '

Download

'; echo ''; } ?>

Hãy tạo một tệp có tên ‘image-gallery.php’ và đặt đoạn mã sau vào trong nó.‘download.php’, URL cũng chứa tên tệp hình ảnh dưới dạng chuỗi truy vấn.

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.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.

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. download.php‘ để bắt buộc tải xuống hình ảnh.

Đâ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 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.

  • Trang chủ
  • Phát triển web
  • PHP
  • Download tệp tin trong PHP

Hướng dẫn tạo hàm download file (tệp tin) bằng lập trình PHP

Hôm nay mình gặp một bài toán về PHP đó là: Khi thành viên thực hiện việc download file xong, thì mình có lưu lại log và giờ mình muốn dùng log đó để thành viên có thể tải lại file bất cứ lúc nào khi muốn.

Thông thường, khi chúng ta tạo chức năng download một file hình ảnh ( gif, png, jpg etc. ) hoặc file có đuôi.csv,.pdf hoặc.php thì chúng sẽ được mở trong trình duyệt với tab hay cửa sổ mới mà không xuất hiện hộp thoại download..csv,.pdf hoặc.php thì chúng sẽ được mở trong trình duyệt với tab hay cửa sổ mới mà không xuất hiện hộp thoại download.

Làm như sau:

Trong bài viết này, mình sẽ chia sẻ cho các bạn một đoạn code bằng PHP, giúp cho các bạn có thể ép những file mà mình nêu bên trên có thể download được chỉ bằng việc click vào nó mà không cần phải hiển thị ở một tab hay cửa sổ mới trên trình duyệt.

Giả sử các bạn tạo một file mới với tên gọi là function.php, sau đó các bạn cần copy đoạn code sau và dán vào bên trong nófunction.php, sau đó các bạn cần copy đoạn code sau và dán vào bên trong nó

Ví dụ

 "application/pdf",
    "csv" => "application/csv",
    "txt" => "text/plain",
    "html" => "text/html",
    "htm" => "text/html",
    "exe" => "application/octet-stream",
    "zip" => "application/zip",
    "doc" => "application/msword",
    "xls" => "application/vnd.ms-excel",
    "ppt" => "application/vnd.ms-powerpoint",
    "gif" => "image/gif",
    "png" => "image/png",
    "jpeg"=> "image/jpg",
    "jpg" =>  "image/jpg",
    "php" => "text/plain"
);
if($mime_type==''){
     $file_extension = strtolower(substr(strrchr($source_file,"."),1));
     if(array_key_exists($file_extension, $known_mime_types)){
        $mime_type=$known_mime_types[$file_extension];
     } else {
        $mime_type="application/force-download";
     };
};
@ob_end_clean(); //Tắt bộ đệm đầu ra để giảm mức sử dụng Máy chủ
// if IE, otherwise Content-Disposition ignored
if(ini_get('zlib.output_compression'))
  ini_set('zlib.output_compression', 'Off');
header('Content-Type: ' . $mime_type);
header('Content-Disposition: attachment; filename="'.$download_name.'"');
header("Content-Transfer-Encoding: binary");
header('Accept-Ranges: bytes');
header("Cache-control: private");
header('Pragma: private');
header("Expires: Thu, 26 May 2021 05:00:00 GMT");
// Hỗ trợ tải xuống nhiều phần và tải xuống
if(isset($_SERVER['HTTP_RANGE']))
{
    list($a, $range) = explode("=",$_SERVER['HTTP_RANGE'],2);
    list($range) = explode(",",$range,2);
    list($range, $range_end) = explode("-", $range);
    $range=intval($range);
    if(!$range_end) {
        $range_end=$size-1;
    } else {
        $range_end=intval($range_end);
    }
    $new_length = $range_end-$range+1;
    header("HTTP/1.1 206 Partial Content");
    header("Content-Length: $new_length");
    header("Content-Range: bytes $range-$range_end/$size");
} else {
    $new_length=$size;
    header("Content-Length: ".$size);
}
/* Xuất tệp tin */
$chunksize = 1*(1024*1024); //you may want to change this
$bytes_send = 0;
if ($source_file = fopen($source_file, 'r'))
{
    if(isset($_SERVER['HTTP_RANGE']))
    fseek($source_file, $range);
    while(!feof($source_file) &&
        (!connection_aborted()) &&
        ($bytes_send < $new_length)
          )
    {
        $buffer = fread($source_file, $chunksize);
        print($buffer); //echo($buffer); // is also possible
        flush();
        $bytes_send += strlen($buffer);
    }
fclose($source_file);
} else die('Lỗi - không thể mở tệp.');
die();
}
?>

Cách sử dụng :

Ví dụ

Cách sử dụng :output_file là xong.

Trong đoạn code trên, mỗi khi cần “ép” download file nào, thì các bạn chỉ việc thay đổi giá trị của biến$file_path và tham số thứ 2 của hàm output_file là xong.

Chúc các bạn thành công !

Bài viết này đã giúp ích cho bạn?