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]'];
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òngNgừng lãng phí thời gian trên máy chủ
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
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']; } }?>0Ngay 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']; } }?>1Tạ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']; } }?>2Cá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']; } }?>3Tạ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']; } }?>4Bâ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 ScriptLà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