Laravel lấy tệp từ bộ lưu trữ

Tải lên các tệp trong Laravel dễ dàng như viết một vài dòng mã. Tất cả những gì bạn cần làm là tạo trình xem tệp trong đó người dùng của bạn chọn tệp để tải lên và bộ điều khiển Laravel sẽ thực hiện phần còn lại. Có nhiều tùy chọn tải tệp lên, nhưng với tính năng tải tệp lên của Laravel và khung PHP SDK Filestack, bạn có thể thực hiện công việc một cách hiệu quả

Laravel là một PHP framework mã nguồn mở mạnh mẽ. Nó nổi tiếng với bộ công cụ đơn giản và thanh lịch để tạo các ứng dụng web đầy đủ tính năng tải lên các tệp, hình ảnh và video. Nếu bạn đã quen thuộc với PHP và muốn tạo một ứng dụng tải tệp lên Laravel, thì hướng dẫn này dành cho bạn.

Chúng ta hãy xem xét ba loại tải lên tệp Laravel khác nhau, xem xét một số ví dụ và thảo luận về các bước đơn giản liên quan. Sau đó, chúng tôi sẽ giới thiệu cách tải tệp lên bằng phiên bản nâng cao của Laravel 8 với xác thực và lưu trữ cơ sở dữ liệu. Cuối cùng, chúng ta sẽ xem xét cách trình tải lên tệp Filestack có thể là lựa chọn tốt nhất của bạn với Filestack PHP SDK.  

Hãy bắt đầu.  

Mục lục

Bạn sẽ học được gì từ bài viết?

Nó sẽ bao gồm các bước sau để tải lên tệp Laravel

  • Cài đặt dự án Laravel
  • Tạo và cấu hình tuyến đường
  •     Tạo tệp phiến
  • Di chuyển cơ sở dữ liệu trong Laravel
  •     Triển khai xác thực trên các thành phần tải tệp lên
  •      Hiển thị thông báo trạng thái tải tệp lên
  •     Cho phép tải lên các loại tệp cụ thể. Ví dụ. csv,. văn bản,. xlx,. xl,. pdf với giới hạn kích thước tệp tối đa lên tới 2MB
  •     Lưu trữ các tệp đã tải lên trong cơ sở dữ liệu.

Ba cách tải lên tệp Laravel mà bạn sẽ tìm hiểu trong hướng dẫn này là gì?

  1. Cách đơn giản của Laravel/PHP. Cách đơn giản nhất để thêm trình tải lên PHP vào dịch vụ của bạn. Lợi ích là bạn có toàn quyền kiểm soát các tệp đã tải lên
  2. Laravel 8 Tải lên tệp có xác thực và lưu trữ trong cơ sở dữ liệu. Cách hợp lý để thêm trình tải lên PHP vào dịch vụ của bạn và bạn có toàn quyền kiểm soát các tệp đã tải lên
  3. Tải tệp lên bằng PHP SDK của Filestack. Đây là cách dễ nhất để thêm chức năng tải lên PHP. Ưu điểm ở đây là bạn không phải quản lý cơ sở hạ tầng tải lên tệp phức tạp đằng sau hậu trường

Làm cách nào để triển khai tải lên tệp Laravel đơn giản?

Để triển khai trình tải lên tệp laravel đơn giản, bạn cần tạo tệp đầu vào trong tệp xem. Bạn có thể làm điều này bằng cách thêm đoạn mã sau

Form::file('file_name');

Thông báo. open(), bạn cần thêm ‘files’ =>’true’ như hình bên dưới. Điều này sẽ cho phép tải lên biểu mẫu thành nhiều phần

Form::open(array('url' => '/uploadfile','files'=>'true'));

Ví dụ

Bước 1 – Tạo một tệp xem có tên là resource/views/uploadfile. php rồi sao chép đoạn mã sau vào tệp đó

 

<html>
   <body>
      <?php
         echo Form::open(array('url' => '/uploadfile','files'=>'true'));
         echo 'Select the file to upload.';
         echo Form::file('image');
         echo Form::submit('Upload File');
         echo Form::close();
      ?>
   </body>
</html>

Bước 2 - Tạo bộ điều khiển có tên là UploadFileController bằng cách thực hiện lệnh sau

php artisan make:controller UploadFileController --plain

 Bước 3 − Sau khi thực hiện thành công lệnh, bạn sẽ nhận được kết quả.

Bước 4 – Tiếp theo, sao chép các dòng mã sau vào app/Http/Controllers/UploadFileController. tập tin php.

ứng dụng/Http/Bộ điều khiển/UploadFileController. php

<?php

namespace App\Http\Controllers;

use Illuminate\Http\Request;
use App\Http\Requests;
use App\Http\Controllers\Controller;

class UploadFileController extends Controller {
   public function index() {
      return view('uploadfile');
   }
   public function showUploadFile(Request $request) {
      $file = $request->file('image');
   
      //Display File Name
      echo 'File Name: '.$file->getClientOriginalName();
      echo '<br>';
   
      //Display File Extension
      echo 'File Extension: '.$file->getClientOriginalExtension();
      echo '<br>';
   
      //Display File Real Path
      echo 'File Real Path: '.$file->getRealPath();
      echo '<br>';
   
      //Display File Size
      echo 'File Size: '.$file->getSize();
      echo '<br>';
   
      //Display File Mime Type
      echo 'File Mime Type: '.$file->getMimeType();
   
      //Move Uploaded File
      $destinationPath = 'uploads';
      $file->move($destinationPath,$file->getClientOriginalName());
   }
}

Bước 5 −Thêm các dòng sau vào app/Http/routes. php

Route::get('/uploadfile','UploadFileController@index');
Route::post('/uploadfile','UploadFileController@showUploadFile');

Bước 6 – Kiểm tra chức năng tệp tải lên

 

Làm cách nào để triển khai Tải lên tệp Laravel 8 với xác thực và lưu trữ trong cơ sở dữ liệu?

Phương pháp tải lên tệp Laravel này tạo ra hai tuyến đường. Đầu tiên, nó tạo một biểu mẫu với phương thức get. Lộ trình thứ hai dành cho tệp tải lên hoặc đăng dữ liệu tải lên tệp

Để làm điều này, hãy phát triển một biểu mẫu đơn giản bằng cách sử dụng Bootstrap và thành phần Giao diện người dùng biểu mẫu của nó. Điều này cho phép bạn chọn tệp, ảnh hoặc video để tải lên bộ nhớ > công khai > thư mục tải lên của bạn. Bạn cũng có thể định cấu hình mô hình cơ sở dữ liệu và lưu trữ đường dẫn và tên tệp trong cơ sở dữ liệu MySQL.

Bạn sẽ cài đặt dự án như thế nào?

Đầu tiên, mở công cụ dòng lệnh từ menu bắt đầu và thực hiện lệnh sau để tạo dự án Laravel từ đầu

composer create-project laravel/laravel --prefer-dist laravel-file-upload

Sau đó, đi vào thư mục dự án Laravel mới được cài đặt

cd laravel-file-upload

Làm thế nào để bạn kết nối với một cơ sở dữ liệu?

Để tải tệp lên bộ lưu trữ trong Laravel, hãy sử dụng MAMP hoặc XAMPP làm máy chủ web cục bộ, xác định tên cơ sở dữ liệu trong MySQL và thêm cấu hình chính xác vào tệp. tập tin env

Làm thế nào để bạn tạo một mô hình tệp và định cấu hình di chuyển?

Để lưu trữ thông tin tệp đã tải lên, hãy mở tệp di chuyển để xác định giá trị bảng trong cơ sở dữ liệu

________số 8_______

 Sau đó, chuyển đến tệp cơ sở dữ liệu/di chuyển/dấu thời gian_create_files_table và xác định giá trị bảng

<?php
use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Support\Facades\Schema;
class CreateFilesTable extends Migration
{
    public function up()
    {
        Schema::create('files', function (Blueprint $table) {
            $table->id();
            $table->string('name')->nullable();
            $table->string('file_path')->nullable();
            $table->timestamps();
        });
    }
    public function down()
    {
        Schema::dropIfExists('files');
    }
}

 

Sau khi bạn hoàn thành ở đó, hãy thêm thuộc tính $fillable trong mô hình Tệp. Mở ứng dụng/Mô hình/Tệp. php và đặt đoạn mã sau

Form::open(array('url' => '/uploadfile','files'=>'true'));
0

 Bây giờ, bạn đã sẵn sàng để chạy quá trình di chuyển. Bạn cũng có thể xem bản cập nhật trong cơ sở dữ liệu MySQL.

Làm thế nào để bạn tạo các tuyến đường trong Laravel?

Đi đến các tuyến đường. trang web. php và tạo hai tuyến đường. Tuyến đầu tiên xử lý việc tạo biểu mẫu, trong khi tuyến thứ hai lưu trữ tệp trong cơ sở dữ liệu MySQL

Form::open(array('url' => '/uploadfile','files'=>'true'));
1

Làm thế nào để bạn tạo một bộ điều khiển tải lên tập tin?

Để tạo bộ điều khiển tải lên tệp xác định logic nghiệp vụ cho tệp tải lên và lưu trữ trong Laravel, hãy làm theo các bước sau

Thực hiện lệnh này để tạo bộ điều khiển

Form::open(array('url' => '/uploadfile','files'=>'true'));
2

Mở ứng dụng/Http/Bộ điều khiển/FileUpload. tập tin php. Ở đây bạn xác định hai phương thức xử lý tệp tải lên. Phương thức đầu tiên hiển thị chế độ xem thông qua bộ điều khiển FileUpload và phương thức thứ hai, phương thức fileUpload(), kiểm tra tính hợp lệ, loại mime hoặc giới hạn kích thước tệp

Phương pháp này cũng lưu trữ tệp trong thư mục lưu trữ/công cộng/tải lên của bạn và lưu tên tệp và đường dẫn trong cơ sở dữ liệu của bạn

Form::open(array('url' => '/uploadfile','files'=>'true'));
3

Làm thế nào để bạn tạo một Blade File trong Laravel?

Để tạo tệp phiến, hãy bắt đầu với việc tạo chế độ xem và biểu mẫu tải tệp lên

Tạo tài nguyên\lượt xem\tệp tải lên. lưỡi. php, sau đó đặt đoạn mã sau vào bên trong nó

Form::open(array('url' => '/uploadfile','files'=>'true'));
4

Thao tác này sẽ hiển thị biểu mẫu tải tệp lên, cũng như thông báo trạng thái

Làm thế nào bạn có thể bắt đầu một ứng dụng Laravel?

Form::open(array('url' => '/uploadfile','files'=>'true'));
5

Đó là nó

 

Làm cách nào để triển khai Tải lên tệp bằng Filestack?

Bây giờ chúng tôi sẽ hướng dẫn bạn cách sử dụng Filestack để tải tệp lên. Filestack là một API tải lên tệp nâng cao và dịch vụ lưu trữ tệp an toàn trên đám mây

Tại sao lại sử dụng dịch vụ của bên thứ ba như Filestack thay vì tự mình xây dựng?

Có một số lý do để sử dụng dịch vụ như Filestack thay vì xây dựng dịch vụ của riêng bạn. Trước hết, sẽ rất rủi ro khi xử lý độc lập quy mô, bảo mật và bảo trì. Thay vào đó, bạn có thể sử dụng Filestack để mở rộng quy mô nhanh chóng và không gây đau đớn ngoài việc giảm thiểu rủi ro. Hơn nữa, Filestack được tích hợp tính năng bảo vệ và bảo trì tiết kiệm thời gian. Bạn không cần lo lắng khi sử dụng Filestack. Do đó, bạn có thể tập trung vào việc phát triển thay vì duy trì, mở rộng quy mô và bảo mật các ứng dụng của mình

Bạn cũng có thể dùng thử Filestack miễn phí. Gói miễn phí cũng như xử lý tới 100 lượt tải lên hàng tháng với dung lượng lưu trữ 1GB và băng thông 1GB

Vậy hãy bắt đầu

1. Bạn đã đăng ký với Filestack chưa?

Nếu chưa, thì bạn cần đăng ký tài khoản Filestack trên trang đăng ký của chúng tôi. Sau khi đăng ký, hãy đăng nhập và nhận Khóa API của bạn.

2. Bạn đã sẵn sàng để bắt đầu tải lên?

Bây giờ, hãy tích hợp tiện ích trình tải tệp JavaScript lên từ thư viện Filestack. Tiện ích cho phép bạn kết nối và tải lên từ nhiều nguồn khác nhau. Chẳng hạn, nếu bạn muốn tải lên từ một URL hoặc phương tiện truyền thông xã hội. Chỉ cần thay thế nội dung của index. html với nội dung sau.

Form::open(array('url' => '/uploadfile','files'=>'true'));
6

Để kiểm tra, hãy mở trang của bạn rồi tải tệp lên bằng tiện ích tải lên. Sau khi tải lên, bạn có thể đăng nhập vào bảng điều khiển Filestack của mình và xem tệp mới tải lên của mình

Đó là nó. Bạn thậm chí không cần máy chủ xử lý tệp. Filestack tốt hơn nhiều về khả năng mở rộng, bảo mật và bảo trì

Tại sao nên sử dụng Thư viện Filestack PHP tùy chọn?

Ví dụ trên là ví dụ đơn giản nhất về tải lên tệp Filestack, nhưng nếu bạn muốn truy cập tệp trên máy chủ của mình và chạy một số loại xử lý hậu kỳ thì sao?

Bạn có thể cài đặt thư viện Filestack PHP bằng trình soạn thảo. Tuy nhiên, nếu bạn chưa cài đặt Trình soạn thảo thì bạn có thể cài đặt nó bằng cách đi tới thư mục bạn đã tạo ban đầu và làm theo tài liệu. (xem liên kết [1] để biết tài liệu chính thức).

Form::open(array('url' => '/uploadfile','files'=>'true'));
7

Khi bạn đã hoàn tất, hãy chạy

<html>
   <body>
      <?php
         echo Form::open(array('url' => '/uploadfile','files'=>'true'));
         echo 'Select the file to upload.';
         echo Form::file('image');
         echo Form::submit('Upload File');
         echo Form::close();
      ?>
   </body>
</html>
0

Sau đó, hãy chạy

<html>
   <body>
      <?php
         echo Form::open(array('url' => '/uploadfile','files'=>'true'));
         echo 'Select the file to upload.';
         echo Form::file('image');
         echo Form::submit('Upload File');
         echo Form::close();
      ?>
   </body>
</html>
1 để cài đặt Filestack SDK

Bây giờ bạn đã có thư viện Filestack, hãy tạo một tập lệnh PHP mới để kiểm tra tệp đã tải lên của bạn

Để thực hiện việc này, hãy tạo một tệp mới có tên fileUploadFilestack. php và thêm phần sau (đảm bảo thay đổi YOUR_API_KEY , YOUR_SECURITY_SECRET . , and YOUR_FILE_HANDLE variables):

Form::open(array('url' => '/uploadfile','files'=>'true'));
8
Form::open(array('url' => '/uploadfile','files'=>'true'));
9

Khi bạn chạy tập lệnh này, tập lệnh sẽ kiểm tra xem liệu tệp của bạn có an toàn cho công việc hay không và lưu kết quả vào biến 

<html>
   <body>
      <?php
         echo Form::open(array('url' => '/uploadfile','files'=>'true'));
         echo 'Select the file to upload.';
         echo Form::file('image');
         echo Form::submit('Upload File');
         echo Form::close();
      ?>
   </body>
</html>
2