Tải xuống tệp từ bộ lưu trữ Laravel

Bài viết này có liên quan đến bài viết trước của tôi về tải tệp lên bằng Dropzone. Do đó, bài viết này sẽ giả định rằng bạn có các tệp di chuyển, bộ điều khiển và mô hình được thảo luận trong bài viết đó. Hôm nay chúng ta sẽ xem cách thiết lập trang web của bạn để có thể tải xuống các tệp. Làm thôi nào

Tình huống trường hợp

Giả sử chúng ta có một bảng cơ sở dữ liệu được gọi là sinh viên với các cột id, tên, giới tính, picture_path, created_at và updated_at. Cột picture_path chứa đường dẫn đến các tệp được tải lên bằng phương pháp

$request->file('file')->store('files');
3. Đây là một ví dụ về đường dẫn được lưu trữ trong cột picture_path

files/A0wjnHie4xlNR1o6qxHihU259yblArpIToGIEps8.png

Đường dẫn được tạo với dòng này

$request->file('file')->store('files');

Để biết thêm thông tin, xem bài viết trước. Dưới đây là một số bước bạn có thể làm theo để thiết lập tải xuống trên trang web của mình

1. Cập nhật tuyến đường của bạn

Bạn sẽ cần hai tuyến đường. một để xử lý yêu cầu cho trang mà bạn sẽ hiển thị các tệp có sẵn và một để xử lý các yêu cầu tải tệp xuống. Thêm các dòng mã sau vào tuyến đường/web của bạn. tập tin php

//Route for viewing a list of student names and links to download their imageRoute::get('view-students', [StudentController::class, 'viewFiles'])->name('student.view_files');//Route for downloading a file using the id of the related studentRoute::get('download/{id}', [StudentController::class, 'downloadFile'])->name('student.download');
2. Tạo và cập nhật chế độ xem của bạn

Chế độ xem sẽ được sử dụng để hiển thị danh sách tên sinh viên. Bên cạnh mỗi tên học sinh sẽ có link download để người dùng tải ảnh học sinh về. Để tạo chế độ xem, hãy điều hướng đến thư mục tài nguyên/lượt xem của dự án của bạn và tạo một tệp mới có tên view_students. lưỡi. php

Thêm đoạn mã sau vào tập tin của bạn

View Students@foreach ($students as $student)@endforeach
{{$student->name}}download
3. Cập nhật bộ điều khiển của bạn

Thêm đoạn mã sau vào StudentController của bạn

namespace App\Http\Controllers;use Illuminate\Http\Request;use App\Models\Student;use Illuminate\Support\Facades\Storage;class StudentController extends Controller{  public function create(){   return view('students');  }public function viewFiles(Request $request){  $students = Student::all();  return view('view_students', ['students' => $students]);}public function downloadFile($id){  $path = Student::where("id", $id)->value("file_path");  return Storage::download($path);}}

Đừng quên thêm dòng sau; . Tải xuống()

use Illuminate\Support\Facades\Storage;
4. Bạn đã hoàn tất

Bạn sẽ có thể truy cập chế độ xem nơi bạn có thể xem tên sinh viên và tải ảnh của họ xuống bằng cách chạy phần sau trong thanh địa chỉ trình duyệt của bạn

Bài viết này sẽ cung cấp cho bạn một ví dụ về tải xuống tệp laravel từ url. Nếu bạn có câu hỏi về việc tải xuống tệp laravel từ url để lưu trữ thì tôi sẽ đưa ra một ví dụ đơn giản kèm theo giải pháp. nếu bạn muốn xem một ví dụ về tệp tải xuống laravel từ liên kết thì bạn đang ở đúng nơi. Trong bài viết này, chúng tôi sẽ triển khai tệp tải xuống laravel từ url bên ngoài

Bạn có thể sử dụng ví dụ này với các phiên bản laravel 6, laravel 7, laravel 8 và laravel 9

Nếu bạn cần tải xuống một tệp hoặc hình ảnh từ một URL trong laravel, thì tôi sẽ cung cấp cho bạn một ví dụ đơn giản về nó. Chúng tôi sẽ sử dụng Mặt tiền lưu trữ và chức năng file_get_contents () để tải xuống hình ảnh từ url. vì vậy hãy xem mã điều khiển bên dưới

Hướng dẫn toàn diện về laravel này sẽ chia sẻ với bạn một phương pháp cực kỳ dễ dàng về cách tải tệp từ URL xuống thư mục lưu trữ công cộng trong ứng dụng Laravel

Đôi khi bạn gặp phải tình huống phải tạo tính năng trong laravel để tải xuống tệp từ thư mục lưu trữ công cộng;

Đây là quy trình ngụ ý trong hướng dẫn này và chúng tôi muốn khám phá từng bước một. Sau đó, chúng tôi bắt đầu với việc tạo một ứng dụng laravel mới, xây dựng tệp cấu hình bộ điều khiển và viết logic để tải tệp xuống từ thư mục lưu trữ

Cuối cùng, chúng tôi sẽ tạo một tuyến đường với hai phương thức GET, một phương thức hiển thị các tệp trong chế độ xem laravel tương tự một phương thức khác tải xuống tệp từ thư mục lưu trữ công cộng

Cài đặt ứng dụng Laravel

Composer là công cụ nền tảng, là khối xây dựng để phát triển laravel hoàn hảo và nó cần được cài đặt trên máy của bạn trước khi bắt đầu làm việc với nền tảng laravel

composer create-project laravel/laravel laravel-demo-app --prefer-dist

Cuối cùng, bạn có thể khởi động ứng dụng bằng lệnh php artisan

php artisan serve

Thiết lập bộ điều khiển

Trong bước này, bạn phải tạo một bộ điều khiển mới

________số 8

Sau đó, chúng tôi sẽ chia sẻ một số ví dụ mã sẽ giúp bạn tải xuống các tệp từ bộ lưu trữ trong laravel

Tiếp tục và mở app/Http/Controllers/DownloadFileController. php và quan trọng nhất là cập nhật tệp bằng mã sau

Phương thức downloadFile() lấy tên tệp làm tham số, tải xuống các tệp từ thư mục lưu trữ công cộng một cách thiếu thận trọng;

function downloadFile($file_name){
        $file = Storage::disk('public')->get($file_name);
  
        return (new Response($file, 200))
              ->header('Content-Type', 'image/jpeg');
    }

Ví dụ mã sau hiển thị các tệp kết hợp với tệp laravel blade view

Hơn nữa, ví dụ này tìm nạp hình ảnh từ thư mục lưu trữ công cộng và lấy tên của các tệp này và gửi trực tiếp đến chế độ xem phiến

$request->file('file')->store('files');
0

Tạo tuyến đường

Sau đó, tạo hai tuyến đường một để tải xuống tệp từ bộ lưu trữ khác để hiển thị các tệp đã tải xuống. Do đó hãy mở tài nguyên/web. php và cập nhật với đoạn mã sau

$request->file('file')->store('files');
1

Định cấu hình Chế độ xem Blade

Cuối cùng, mở tài nguyên/lượt xem/chào mừng. lưỡi. php, thêm mã bên dưới và gọi chế độ xem laravel

$request->file('file')->store('files');
2

Phần kết luận

Hướng dẫn tải Laravel Tệp hình ảnh từ url sang bộ nhớ công cộng đã hoàn tất, tôi hy vọng bạn thích hướng dẫn từng bước này

Tải xuống tệp từ bộ lưu trữ Laravel

máy đào

Tôi là Digamber, một nhà phát triển full-stack và là người đam mê thể dục. Tôi đã tạo trang web này để truyền kinh nghiệm mã hóa của mình cho các lập trình viên mới. Tôi thích viết trên JavaScript, ECMAScript, React, Angular, Vue, Laravel

Twitter GitHub

Bài viết đề xuất

Laravel 9 Xác thực Giao thức Internet (IPv6) Hướng dẫn Laravel 9 Nhập bản ghi trong SQL với CSV và Seeder Cách triển khai Xác thực tồn tại trong Laravel 9 Form Laravel 9 Livewire Ví dụ về Hướng dẫn tạo Slug mới Laravel 9 Tạo nhiều Slug duy nhất khi tải trang Hướng dẫn Laravel 9 Bootstrap Tags Ví dụ về hệ thống Hướng dẫn Laravel 9 Tạo

Làm cách nào để tạo một tệp có thể tải xuống trong Laravel?

Chúng tôi đang sử dụng hàm download() từ lớp Laravel 8 Response để 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

Làm cách nào để lấy tệp PDF từ bộ lưu trữ trong Laravel?

$file = Lưu trữ. get('ứng dụng/tên thư mục/ví dụ. pdf'); . get('storage_path('ứng dụng/tên thư mục/ví dụ. pdf'); . pdf"' ]);

Làm cách nào để tải xuống tệp từ thư mục chung trong Laravel?

Tải xuống tệp trong Laravel thậm chí còn đơn giản hơn tải lên. Bạn có thể chuyển phương thức download() với đường dẫn tệp để tải xuống tệp. Tương tự, nếu bạn muốn tải xuống tệp từ thư mục chung, bạn có thể sử dụng phương thức download() từ lớp Phản hồi .

Làm cách nào tôi có thể lấy tệp lưu trữ Laravel?

Tệp cấu hình hệ thống tệp của Laravel được đặt tại config/filesystems. php . Trong tệp này, bạn có thể định cấu hình tất cả các "đĩa" hệ thống tệp của mình. Mỗi đĩa đại diện cho một trình điều khiển lưu trữ và vị trí lưu trữ cụ thể.