Làm cách nào để tải xuống tệp bằng Laravel?

Trong bài viết ngắn này, tôi đang chia sẻ cách tải xuống các tệp trong Laravel 8. Nếu có một dự án như cửa hàng kỹ thuật số trực tuyến, trong đó người dùng có thể tải xuống các tệp sau khi họ mua thì đây là dự án dành cho bạn. Chúng tôi đang sử dụng hàm download[] từ Laravel 8 Response class để phục vụ cho việc tải xuống

Media triển khai giao diện Responsable. Điều này có nghĩa là bạn chỉ có thể trả về một đối tượng phương tiện để tải xuống tệp được liên kết trong trình duyệt của mình

use Spatie\MediaLibrary\MediaCollections\Models\Media;

class DownloadMediaController
{
   public function show[Media $mediaItem]
   {
      return $mediaItem;
   }
}

Nếu bạn cần kiểm soát nhiều hơn, bạn cũng có thể thực hiện chi tiết hơn ở trên

use Spatie\MediaLibrary\MediaCollections\Models\Media;

class DownloadMediaController
{
   public function show[Media $mediaItem]
   {
       return response[]->download[$mediaItem->getPath[], $mediaItem->file_name];
   }
}

Bạn có phải là người học trực quan?

Đây là video hướng dẫn cách tải file

Bạn muốn xem nhiều video như thế này?

Hôm nay mình sẽ hướng dẫn các bạn cách download file trong laravel 8. chúng tôi sẽ hiển thị ví dụ về tải xuống phản hồi với tệp trong laravel 8. Đôi khi, chúng tôi yêu cầu trả về phản hồi với tệp tải xuống từ phương thức của bộ điều khiển như tạo hóa đơn và cung cấp để tải xuống, v.v. Laravel 8 cung cấp cho chúng tôi phản hồi [] với phương thức tải xuống theo cách mà chúng tôi có thể thực hiện

Trong blog này, Đối số đầu tiên của tải xuống [] tôi phải cung cấp đường dẫn của tệp tải xuống. Chúng tôi có thể đổi tên tệp tải xuống bằng cách chuyển đối số thứ hai của tải xuống[]. Chúng tôi cũng có thể đặt tiêu đề của tệp bằng cách chuyển đối số thứ ba

Vì vậy, trước tiên tôi sẽ tạo tuyến đường mới cho ví dụ của chúng tôi như dưới đây

tuyến đường/web. php

use App\Http\Controllers\DownloadFileController;

Route::get['/file-download', [DownloadFileController::class, 'index']]->name['file.download.index'];

Bây giờ, tôi phải thêm một phương thức "downloadFile[]" vào DownloadFileController của mình. Nếu bạn không có DownloadFileController thì bạn có thể sử dụng bộ điều khiển của riêng mình như dưới đây

Đôi khi, chúng tôi yêu cầu trả về phản hồi với tệp tải xuống từ phương thức của bộ điều khiển như tạo hóa đơn và cung cấp để tải xuống, v.v. Laravel cung cấp cho chúng tôi phản hồi [] với phương thức tải xuống theo cách mà chúng tôi có thể thực hiện

bạn cũng có thể trả lời tệp tải xuống từ bộ lưu trữ và xóa nó sau khi tải xuống trong phiên bản laravel 6, laravel 7, laravel 8 và laravel 9

Trong đối số đầu tiên của tải xuống[], chúng tôi phải cung cấp đường dẫn của tệp tải xuống. Chúng tôi có thể đổi tên tệp tải xuống bằng cách chuyển đối số thứ hai của tải xuống[]. Chúng tôi cũng có thể đặt tiêu đề của tệp bằng cách chuyển đối số thứ ba

Trong ví dụ dưới đây sẽ giúp bạn cách nó hoạt động

Vì vậy, trước tiên tôi sẽ tạo tuyến đường mới cho ví dụ của chúng tôi như dưới đây

tuyến đường/web. php

Route::get['donwload-file', 'HomeController@downloadFile'];

Ok, bây giờ tôi phải thêm một phương thức "downloadFile[]" vào HomeController của mình. Nếu bạn không có HomeController thì bạn có thể sử dụng bộ điều khiển của riêng mình như dưới đây

Được đăng ban đầu @ https. // triển khai mã. com truy cập và tải xuống mã mẫu. https. // triển khai mã. com/blog/laravel/how-to-download-file-in-laravel-8

Trong bài viết ngắn này, tôi đang chia sẻ cách tải xuống các tệp trong Laravel 8. Nếu có một dự án như cửa hàng kỹ thuật số trực tuyến, trong đó người dùng có thể tải xuống các tệp sau khi họ mua thì đây là dự án dành cho bạn. Chúng tôi đang sử dụng hàm download[] từ Laravel 8 Response class để phục vụ cho việc tải xuống

$filepath = đường dẫn cho tệp mục tiêu được tải xuống

$filename = tên tệp cho tệp đã tải xuống

$headers = đây là một mảng về loại nội dung tệp để tải xuống

Phản ứng. tải xuống[$filepath, $filename, $headers]

Bây giờ bạn có một ý tưởng cơ bản về chức năng này

Chúng tôi sẽ cố gắng tạo một lộ trình cho việc này

Route::get['/purchased-download', [\App\Http\Controllers\PurchasedFileController::class, 'download']]->name['purchased.download'];

Vào chế độ toàn màn hình Thoát chế độ toàn màn hình

Sau đó, hãy viết bộ điều khiển của chúng tôi, xem mã hoàn chỉnh bên dưới

Chủ Đề