Làm cách nào để tải lên một thư mục trong Laravel?

Tải lên tệp là một khía cạnh thiết yếu của bất kỳ dự án nào. Với tầm quan trọng này, thật đáng ngạc nhiên khi nhiều nhà phát triển phải đối mặt với những thách thức khi thêm tính năng tải tệp lên dự án của họ. Đặc biệt, các nhà phát triển không chắc chắn về cách tải lên và xác thực các tệp

Trong hướng dẫn này, tôi sẽ thảo luận về cách triển khai chức năng tải lên tệp của Laravel với tùy chọn tải lên nhiều tệp và hình ảnh. Tôi sẽ sử dụng thư mục lưu trữ Laravel và sau đó tạo bản ghi cơ sở dữ liệu để tải tệp lên. Tôi sẽ sử dụng Laravel 5. 5 và Bootstrap để cung cấp năng lượng cho mã của hướng dẫn này

Bạn cũng có thể thích. Tải lên tệp PHP bằng jQuery AJAX

điều kiện tiên quyết

Với mục đích của hướng dẫn này, tôi giả sử rằng bạn đã cài đặt ứng dụng Laravel trên máy chủ web. thiết lập của tôi là

  • Môi trường Linux/Unix hoặc WAMP/XAMPP
  • ấu trùng 5. 5
  • PHP7. 1
  • mysql
  • Máy chủ web [Apache, NGINX hoặc máy chủ web PHP tích hợp để thử nghiệm]

Tôi đã cài đặt một ứng dụng Laravel trên máy chủ Laravel do Cloudways quản lý vì ứng dụng này có mọi thứ tôi cần cho hướng dẫn này. Nếu bạn chưa có tài khoản trên Cloudways, hãy đăng ký miễn phí và xem GIF sau để thiết lập máy chủ và ứng dụng chỉ bằng vài cú nhấp chuột

[email protected]']; Route::post['/multiuploads', '[email protected]'];

Ngừng lãng phí thời gian trên máy chủ

Cloudways xử lý việc quản lý máy chủ cho bạn để bạn có thể tập trung vào việc tạo các ứng dụng tuyệt vời và giữ cho khách hàng của mình hài lòng

Tạo bộ điều khiển

Tiếp theo, tạo Bộ điều khiển bằng cách sử dụng lệnh sau

nghệ nhân php làm. bộ điều khiển UploadController

Tiếp theo, vào app/Http/Controller/UploadController và mở tệp Controller. Thêm đoạn mã sau vào nó

namespace App\Http\Controllers;

use Illuminate\Http\Request;

class UploadController extends Controller

{

public function uploadForm[]

{

return view['upload_form'];

}

public function uploadSubmit[Request $request]

{

// coding ….

}

}

Xem tệp [Upload_form. lưỡi. php]

Trong tệp xem, tôi đã sử dụng Bootstrap để tạo kiểu mã, biểu định kiểu liên kết, tệp jQuery, JavaScript












Laravel Uploading



















@if [count[$errors] > 0]

    @foreach [$errors->all[] as $error]
  • {{ $error }}
  • @endforeach

@endif

Laravel Multiple File Uploading With Bootstrap Form


{{ csrf_field[] }}

Product Name

Product photos [can attach more than one]:


Tôi đã sử dụng các lớp Bootstrap để hiển thị cảnh báo xác thực và sử dụng các phương thức Xác thực của Laravel để xác thực loại tệp. Sử dụng đoạn mã sau cho bộ điều khiển

________số 8_______

Lưu trữ dữ liệu và tệp trong Laravel

Laravel cung cấp một hệ thống tệp lưu trữ lưu trữ tất cả dữ liệu bao gồm tệp và hình ảnh

Đối với điều này, Laravel cung cấp config/filesystems. php, nằm trong thư mục cấu hình. Trong tệp này, bạn có thể chỉ định vị trí lưu trữ tệp của mình

return [

'default' => 'local',

'disks' => [

'local' => [

'driver' => 'local',

'root' => storage_path['app'],

],

// ...

Sử dụng đoạn mã trên, bạn có thể lưu các tệp trong thư mục ứng dụng/lưu trữ thay vì thư mục chung. Đây là một thực hành mã hóa tốt để lưu trữ dữ liệu vì vị trí này không thể truy cập được từ trình duyệt. Với mục đích của hướng dẫn này, tôi đã tạo một thư mục có tên photos in storage/app/.

Khi chạy ứng dụng trên trình duyệt, bạn sẽ thấy màn hình sau

Với xác thực

Để xem hình ảnh và tệp tải lên trong Laravel đang hoạt động, hãy xem bản demo

Sự khác biệt giữa đĩa cục bộ và đĩa công cộng

Bạn có thể thấy các đĩa cục bộ và công khai được xác định trong config/filesystems. php. Laravel sử dụng cấu hình đĩa cục bộ theo mặc định. Sự khác biệt cơ bản giữa đĩa cục bộ và đĩa chung là đĩa cục bộ là riêng tư và không thể truy cập được từ trình duyệt, trong khi đĩa chung có thể dễ dàng truy cập từ trình duyệt

Vì đĩa chung nằm trong storage/app/public và gốc máy chủ của Laravel ở chế độ công khai, bạn cần liên kết storage/app/public với thư mục chung của Laravel. Chúng ta có thể làm bằng cách chạy php artisan storage. liên kết

Thao tác tập tin

Laravel chủ yếu cần trợ giúp bên ngoài trong việc thay đổi kích thước hình ảnh, thêm bộ lọc và các hoạt động liên quan khác. Việc thêm các tính năng này vào môi trường gốc của Laravel sẽ chỉ làm phình to ứng dụng vì không cần cài đặt. Để làm được điều đó, chúng ta cần một gói có tên là can thiệp/hình ảnh. Ở phần trên, chúng ta đã cài đặt gói này rồi, nhưng nhà soạn nhạc vẫn yêu cầu nó để tham khảo

Chúng tôi không cần phải đăng ký bất cứ thứ gì vì Laravel có thể tự động phát hiện các gói. Đọc phần sau nếu bạn đang sử dụng phiên bản thấp hơn Laravel 5. 5

Để thay đổi kích thước một hình ảnh

Create the Migration

Go to the database/migration folder and open the migration file for item. You will see the default structure that include [in my case] id , name, timestamps.

increments['id'];

$table->string['name'];

$table->timestamps[];

}];

}

public function down[]

{

Schema::drop['items'];

}

}?>
0

Ngay cả các gói của Laravel cũng trôi chảy

Gửi tệp dưới dạng tệp đính kèm email

Để gửi tệp có tệp đính kèm, bạn chỉ cần dán đoạn mã sau vào bộ điều khiển của mình theo các trường nhập

Create the Migration

Go to the database/migration folder and open the migration file for item. You will see the default structure that include [in my case] id , name, timestamps.

increments['id'];

$table->string['name'];

$table->timestamps[];

}];

}

public function down[]

{

Schema::drop['items'];

}

}?>
1

Tạo lớp người gửi email

Để gửi email trong Laravel, bạn cần tạo một tệp lớp riêng. Lớp này sẽ có chức năng chuẩn bị email và nội dung của nó. Ngoài ra, chúng tôi sẽ đính kèm tệp đã tải lên dưới dạng tệp đính kèm nội tuyến

Đây là lớp email của tôi

Create the Migration

Go to the database/migration folder and open the migration file for item. You will see the default structure that include [in my case] id , name, timestamps.

increments['id'];

$table->string['name'];

$table->timestamps[];

}];

}

public function down[]

{

Schema::drop['items'];

}

}?>
2

Các chức năng quan trọng được sử dụng ở đây là

Create the Migration

Go to the database/migration folder and open the migration file for item. You will see the default structure that include [in my case] id , name, timestamps.

increments['id'];

$table->string['name'];

$table->timestamps[];

}];

}

public function down[]

{

Schema::drop['items'];

}

}?>
3

Tạo mẫu email

Ở bước trên, lớp email của chúng ta đề cập đến mẫu email là return $this->view[’emails/upload’]. Vì vậy, chúng tôi sẽ tạo mẫu email tại tài nguyên/lượt xem/email/tải lên. lưỡi. php

Create the Migration

Go to the database/migration folder and open the migration file for item. You will see the default structure that include [in my case] id , name, timestamps.

increments['id'];

$table->string['name'];

$table->timestamps[];

}];

}

public function down[]

{

Schema::drop['items'];

}

}?>
4

Bây giờ khi bạn gửi biểu mẫu, tệp đã tải lên của bạn sẽ được gửi dưới dạng tệp đính kèm email

Đánh giá của khách hàng tại

“Dịch vụ lưu trữ trên nền tảng đám mây có một trong những dịch vụ khách hàng tốt nhất và tốc độ lưu trữ”

Sanjit C [Nhà phát triển trang web]

Shahzeb Ahmed

Shahzeb là Nhà tiếp thị kỹ thuật số có nền tảng Kỹ thuật phần mềm, làm việc với tư cách là Người quản lý cộng đồng — Cộng đồng PHP tại Cloudways. Anh ấy có tham vọng phát triển và mong muốn học hỏi & chia sẻ thông tin về Phát triển PHP & Laravel thông qua thực hành và thử nghiệm. Anh ấy thích đi du lịch và khám phá những ý tưởng mới bất cứ khi nào anh ấy có thời gian. Hãy liên hệ với anh ấy tại [email được bảo vệ]

Làm cách nào để tải trực tiếp các tệp trong Laravel vào thư mục chung?

use Illuminate\Support\Facades\Storage; Phương thức putfile[] sẽ lưu trữ tệp được cung cấp trong thư mục được đề cập. Nó sẽ cập nhật tương tự trong thư mục lưu trữ/công khai.

Làm cách nào để tải lên tệp trong thư mục trong PHP?

Tải lên tệp PHP .
Định cấu hình "php. ini" Tập tin. Trước tiên, hãy đảm bảo rằng PHP được định cấu hình để cho phép tải tệp lên. .
Kiểm tra xem tệp đã tồn tại chưa. Bây giờ chúng ta có thể thêm một số hạn chế. .
Kích thước tệp giới hạn. Trường nhập tệp trong biểu mẫu HTML của chúng tôi ở trên được đặt tên là "fileToUpload". .
Loại tệp giới hạn. .
Hoàn thành tải lên tệp PHP Script

Làm cách nào để tải tệp lên trong Laravel 8?

Được rồi, bắt đầu nào. .
Bước 1. Tạo di chuyển tệp tải lên. Đầu tiên, chúng tôi sẽ tạo di chuyển bảng tệp cho mô hình Tệp của chúng tôi. .
Bước 2. Tạo bộ điều khiển và mô hình tải lên tệp. .
Bước 3. Tạo các tuyến đường tải lên tập tin. .
Bước 4. Mô hình thiết lập. .
Bước 5. Bộ điều khiển cài đặt. .
Bước 6. Tạo StoreFileRequest. .
Bước 7. Tạo Chế độ xem

Chủ Đề