Nếu bạn đang sử dụng Laravel Valet để phát triển cục bộ trên máy Mac thì bạn có thể cần thay đổi cấu hình
composer require league/flysystem-aws-s3-v3 "^3.0"
94 để phù hợp với nhu cầu của mình. Nó có thể tăng ________ 195, ________ 196, v.v.Nếu bạn muốn cấu hình/thiết lập Laravel Valet trên Mac M1 thì có thể theo dõi bài viết trước của mình tại đây
Gần đây, tôi đã viết một bài viết về cách định cấu hình Trình giám sát PHP cung cấp cho bạn thông tin trực quan về Laravel Valet và các cấu hình khác nhau. Nó cũng có thể cung cấp cho bạn tệp cấu hình PHP cục bộ
composer require league/flysystem-aws-s3-v3 "^3.0"
94Theo mặc định, tất cả các phiên bản PHP sẽ được đặt tại
composer require league/flysystem-aws-s3-v3 "^3.0"
98Giả sử, phiên bản PHP đang hoạt động hiện tại của bạn là
composer require league/flysystem-aws-s3-v3 "^3.0"
99 và bạn muốn thay đổi giá trị composer require league/flysystem-aws-s3-v3 "^3.0"
96. Đến địa điểm sau. composer require league/flysystem-aws-s3-v3 "^3.0"
01 Laravel cung cấp khả năng trừu tượng hóa hệ thống tệp mạnh mẽ nhờ gói Flysystem PHP tuyệt vời của Frank de Jonge. Tích hợp Laravel Flysystem cung cấp các trình điều khiển đơn giản để làm việc với các hệ thống tệp cục bộ, SFTP và Amazon S3. Thậm chí tốt hơn, thật đơn giản để chuyển đổi giữa các tùy chọn lưu trữ này giữa máy phát triển cục bộ và máy chủ sản xuất của bạn vì API vẫn giữ nguyên cho mỗi hệ thống
Cấu hình
Tệp cấu hình hệ thống tệp của Laravel được đặt tại ________ 05. 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ể. Các cấu hình ví dụ cho từng trình điều khiển được hỗ trợ được bao gồm trong tệp cấu hình để bạn có thể sửa đổi cấu hình để phản ánh tùy chọn lưu trữ và thông tin xác thực của mình
Trình điều khiển
composer require league/flysystem-aws-s3-v3 "^3.0"
6 tương tác với các tệp được lưu trữ cục bộ trên máy chủ chạy ứng dụng Laravel trong khi trình điều khiển composer require league/flysystem-aws-s3-v3 "^3.0"
7 được sử dụng để ghi vào dịch vụ lưu trữ đám mây S3 của AmazonLưu ý Bạn có thể định cấu hình bao nhiêu đĩa tùy thích và thậm chí có thể có nhiều đĩa sử dụng cùng một trình điều khiển
Trình điều khiển địa phương
Khi sử dụng trình điều khiển
composer require league/flysystem-aws-s3-v3 "^3.0"
6, tất cả các hoạt động của tệp đều liên quan đến thư mục composer require league/flysystem-aws-s3-v3 "^3.0"
9 được xác định trong tệp cấu hình composer require league/flysystem-ftp "^3.0"
0 của bạn. Theo mặc định, giá trị này được đặt vào thư mục composer require league/flysystem-ftp "^3.0"
1. Do đó, phương pháp sau đây sẽ ghi vào composer require league/flysystem-ftp "^3.0"
2________số 8đĩa công cộng
Đĩa
composer require league/flysystem-ftp "^3.0"
3 có trong tệp cấu hình composer require league/flysystem-ftp "^3.0"
0 của ứng dụng của bạn dành cho các tệp sẽ được truy cập công khai. Theo mặc định, đĩa composer require league/flysystem-ftp "^3.0"
3 sử dụng trình điều khiển composer require league/flysystem-aws-s3-v3 "^3.0"
6 và lưu trữ các tệp của nó trong composer require league/flysystem-ftp "^3.0"
7Để làm cho các tệp này có thể truy cập được từ web, bạn nên tạo một liên kết tượng trưng từ
composer require league/flysystem-ftp "^3.0"
8 đến composer require league/flysystem-ftp "^3.0"
7. Việc sử dụng quy ước thư mục này sẽ giữ các tệp có thể truy cập công khai của bạn trong một thư mục có thể dễ dàng chia sẻ qua các lần triển khai khi sử dụng các hệ thống triển khai không có thời gian ngừng hoạt động như EnvoyerĐể tạo liên kết tượng trưng, bạn có thể sử dụng lệnh Artisan
composer require league/flysystem-aws-s3-v3 "^3.0"
60composer require league/flysystem-aws-s3-v3 "^3.0"
7Khi tệp đã được lưu trữ và liên kết tượng trưng đã được tạo, bạn có thể tạo URL tới tệp bằng trình trợ giúp
composer require league/flysystem-aws-s3-v3 "^3.0"
61composer require league/flysystem-aws-s3-v3 "^3.0"
9Bạn có thể định cấu hình các liên kết tượng trưng bổ sung trong tệp cấu hình
composer require league/flysystem-ftp "^3.0"
0 của mình. Mỗi liên kết được định cấu hình sẽ được tạo khi bạn chạy lệnh composer require league/flysystem-aws-s3-v3 "^3.0"
60composer require league/flysystem-aws-s3-v3 "^3.0"
2Điều kiện tiên quyết của trình điều khiển
Cấu hình trình điều khiển S3
Trước khi sử dụng trình điều khiển S3, bạn sẽ cần cài đặt gói Flysystem S3 thông qua trình quản lý gói Composer
composer require league/flysystem-aws-s3-v3 "^3.0"
Thông tin cấu hình trình điều khiển S3 nằm trong tệp cấu hình
composer require league/flysystem-aws-s3-v3 "^3.0"
5 của bạn. Tệp này chứa một mảng cấu hình ví dụ cho trình điều khiển S3. Bạn có thể tự do sửa đổi mảng này với thông tin đăng nhập và cấu hình S3 của riêng mình. Để thuận tiện, các biến môi trường này khớp với quy ước đặt tên mà AWS CLI sử dụngCấu hình trình điều khiển FTP
Trước khi sử dụng trình điều khiển FTP, bạn cần cài đặt gói Flysystem FTP thông qua trình quản lý gói Composer
composer require league/flysystem-ftp "^3.0"
Tích hợp Flysystem của Laravel hoạt động tốt với FTP; . Nếu bạn cần định cấu hình hệ thống tệp FTP, bạn có thể sử dụng ví dụ cấu hình bên dưới
composer require league/flysystem-aws-s3-v3 "^3.0"
6Cấu hình trình điều khiển SFTP
Trước khi sử dụng trình điều khiển SFTP, bạn cần cài đặt gói Flysystem SFTP thông qua trình quản lý gói Composer
composer require league/flysystem-aws-s3-v3 "^3.0"
8Tích hợp Flysystem của Laravel hoạt động tốt với SFTP; . Nếu bạn cần định cấu hình hệ thống tệp SFTP, bạn có thể sử dụng ví dụ cấu hình bên dưới
composer require league/flysystem-aws-s3-v3 "^3.0"
0Hệ thống tệp có phạm vi và chỉ đọc
Bạn có thể tạo một phiên bản có phạm vi đường dẫn của bất kỳ đĩa hệ thống tệp hiện có nào bằng cách xác định một đĩa sử dụng trình điều khiển
composer require league/flysystem-aws-s3-v3 "^3.0"
67. Các đĩa có phạm vi cho phép bạn xác định một hệ thống tệp trong đó tất cả các đường dẫn được tự động thêm tiền tố vào một tiền tố đường dẫn nhất định. Ví dụ: bạn có thể tạo một đĩa có phạm vi đĩa composer require league/flysystem-aws-s3-v3 "^3.0"
7 hiện có của bạn thành một tiền tố đường dẫn cụ thể, sau đó mọi thao tác tệp sử dụng đĩa được xác định phạm vi của bạn sẽ sử dụng tiền tố đã chỉ địnhuse Illuminate\Support\Facades\Storage;
Storage::disk['local']->put['example.txt', 'Contents'];
0Nếu bạn muốn chỉ định rằng bất kỳ đĩa hệ thống tập tin nào phải là "chỉ đọc", bạn có thể bao gồm tùy chọn cấu hình
composer require league/flysystem-aws-s3-v3 "^3.0"
69 trong mảng cấu hình của đĩause Illuminate\Support\Facades\Storage;
Storage::disk['local']->put['example.txt', 'Contents'];
1Hệ thống tập tin tương thích Amazon S3
Theo mặc định, tệp cấu hình
composer require league/flysystem-ftp "^3.0"
0 của ứng dụng chứa cấu hình đĩa cho đĩa composer require league/flysystem-aws-s3-v3 "^3.0"
7. Ngoài việc sử dụng đĩa này để tương tác với Amazon S3, bạn có thể sử dụng nó để tương tác với bất kỳ dịch vụ lưu trữ tệp tương thích với S3 nào, chẳng hạn như MiniIO hoặc DigitalOcean SpacesThông thường, sau khi cập nhật thông tin đăng nhập của đĩa để khớp với thông tin đăng nhập của dịch vụ bạn định sử dụng, bạn chỉ cần cập nhật giá trị của tùy chọn cấu hình
composer require league/flysystem-aws-s3-v3 "^3.0"
82. Giá trị của tùy chọn này thường được xác định thông qua biến môi trường composer require league/flysystem-aws-s3-v3 "^3.0"
83use Illuminate\Support\Facades\Storage;
Storage::disk['local']->put['example.txt', 'Contents'];
2Lấy phiên bản đĩa
Mặt tiền
composer require league/flysystem-aws-s3-v3 "^3.0"
84 có thể được sử dụng để tương tác với bất kỳ đĩa nào được định cấu hình của bạn. Ví dụ: bạn có thể sử dụng phương pháp composer require league/flysystem-aws-s3-v3 "^3.0"
85 trên mặt tiền để lưu hình đại diện trên đĩa mặc định. Nếu bạn gọi các phương thức trên mặt tiền composer require league/flysystem-aws-s3-v3 "^3.0"
84 mà không gọi phương thức composer require league/flysystem-aws-s3-v3 "^3.0"
87 trước, thì phương thức đó sẽ tự động được chuyển vào đĩa mặc địnhuse Illuminate\Support\Facades\Storage;
Storage::disk['local']->put['example.txt', 'Contents'];
3Nếu ứng dụng của bạn tương tác với nhiều đĩa, bạn có thể sử dụng phương pháp
composer require league/flysystem-aws-s3-v3 "^3.0"
87 trên mặt tiền composer require league/flysystem-aws-s3-v3 "^3.0"
84 để làm việc với các tệp trên một đĩa cụ thểuse Illuminate\Support\Facades\Storage;
Storage::disk['local']->put['example.txt', 'Contents'];
4Đĩa theo yêu cầu
Đôi khi, bạn có thể muốn tạo một đĩa trong thời gian chạy bằng cách sử dụng một cấu hình nhất định mà không có cấu hình đó thực sự có trong tệp cấu hình
composer require league/flysystem-ftp "^3.0"
0 của ứng dụng của bạn. Để thực hiện điều này, bạn có thể truyền một mảng cấu hình cho phương thức composer require league/flysystem-aws-s3-v3 "^3.0"
02 của mặt tiền composer require league/flysystem-aws-s3-v3 "^3.0"
84use Illuminate\Support\Facades\Storage;
Storage::disk['local']->put['example.txt', 'Contents'];
5Truy xuất tệp
Phương thức
composer require league/flysystem-aws-s3-v3 "^3.0"
03 có thể được sử dụng để truy xuất nội dung của tệp. Nội dung chuỗi thô của tệp sẽ được phương thức trả về. Hãy nhớ rằng, tất cả các đường dẫn tệp phải được chỉ định tương ứng với vị trí "gốc" của đĩause Illuminate\Support\Facades\Storage;
Storage::disk['local']->put['example.txt', 'Contents'];
6Phương pháp
composer require league/flysystem-aws-s3-v3 "^3.0"
04 có thể được sử dụng để xác định xem tệp có tồn tại trên đĩa khônguse Illuminate\Support\Facades\Storage;
Storage::disk['local']->put['example.txt', 'Contents'];
7Phương pháp
composer require league/flysystem-aws-s3-v3 "^3.0"
05 có thể được sử dụng để xác định xem một tệp có bị thiếu trong đĩa khônguse Illuminate\Support\Facades\Storage;
Storage::disk['local']->put['example.txt', 'Contents'];
8Tải tập tin
Phương pháp
composer require league/flysystem-aws-s3-v3 "^3.0"
06 có thể được sử dụng để tạo phản hồi buộc trình duyệt của người dùng tải xuống tệp tại đường dẫn đã cho. Phương thức composer require league/flysystem-aws-s3-v3 "^3.0"
06 chấp nhận tên tệp làm đối số thứ hai cho phương thức, sẽ xác định tên tệp mà người dùng tải xuống tệp nhìn thấy. Cuối cùng, bạn có thể chuyển một mảng các tiêu đề HTTP làm đối số thứ ba cho phương thứcuse Illuminate\Support\Facades\Storage;
Storage::disk['local']->put['example.txt', 'Contents'];
9URL tệp
Bạn có thể sử dụng phương pháp
composer require league/flysystem-aws-s3-v3 "^3.0"
08 để lấy URL cho một tệp nhất định. Nếu bạn đang sử dụng trình điều khiển composer require league/flysystem-aws-s3-v3 "^3.0"
6, trình điều khiển này thường sẽ chỉ thêm use Illuminate\Support\Facades\Storage;
Storage::disk['local']->put['example.txt', 'Contents'];
00 vào trước đường dẫn đã cho và trả về một URL tương đối cho tệp. Nếu bạn đang sử dụng trình điều khiển composer require league/flysystem-aws-s3-v3 "^3.0"
7, URL từ xa đủ điều kiện sẽ được trả lạicomposer require league/flysystem-aws-s3-v3 "^3.0"
70Khi sử dụng trình điều khiển
composer require league/flysystem-aws-s3-v3 "^3.0"
6, tất cả các tệp có thể truy cập công khai phải được đặt trong thư mục composer require league/flysystem-ftp "^3.0"
7. Hơn nữa, bạn nên tạo một liên kết tượng trưng tại composer require league/flysystem-ftp "^3.0"
8 trỏ đến thư mục composer require league/flysystem-ftp "^3.0"
7Cảnh báo
Khi sử dụng trình điều khiển6, giá trị trả về của
composer require league/flysystem-aws-s3-v3 "^3.0"
08 không phải là mã hóa URL. Vì lý do này, chúng tôi khuyên bạn nên luôn lưu trữ các tệp của mình bằng các tên sẽ tạo URL hợp lệ.
composer require league/flysystem-aws-s3-v3 "^3.0"
URL tạm thời
Sử dụng phương pháp
use Illuminate\Support\Facades\Storage;
Storage::disk['local']->put['example.txt', 'Contents'];
08, bạn có thể tạo các URL tạm thời cho các tệp được lưu trữ bằng trình điều khiển composer require league/flysystem-aws-s3-v3 "^3.0"
7. Phương thức này chấp nhận một đường dẫn và một phiên bản use Illuminate\Support\Facades\Storage;
Storage::disk['local']->put['example.txt', 'Contents'];
10 chỉ định khi nào URL sẽ hết hạncomposer require league/flysystem-aws-s3-v3 "^3.0"
71Nếu bạn cần chỉ định các tham số yêu cầu S3 bổ sung, bạn có thể chuyển mảng các tham số yêu cầu làm đối số thứ ba cho phương thức
use Illuminate\Support\Facades\Storage;
Storage::disk['local']->put['example.txt', 'Contents'];
08composer require league/flysystem-aws-s3-v3 "^3.0"
72Nếu bạn cần tùy chỉnh cách tạo các URL tạm thời cho một bộ lưu trữ đĩa cụ thể, bạn có thể sử dụng phương pháp
use Illuminate\Support\Facades\Storage;
Storage::disk['local']->put['example.txt', 'Contents'];
12. Ví dụ: điều này có thể hữu ích nếu bạn có bộ điều khiển cho phép bạn tải xuống các tệp được lưu trữ qua đĩa thường không hỗ trợ URL tạm thời. Thông thường, phương thức này nên được gọi từ phương thức use Illuminate\Support\Facades\Storage;
Storage::disk['local']->put['example.txt', 'Contents'];
13 của nhà cung cấp dịch vụcomposer require league/flysystem-aws-s3-v3 "^3.0"
73Tùy chỉnh máy chủ URL
Nếu bạn muốn xác định trước máy chủ lưu trữ cho các URL được tạo bằng cách sử dụng mặt tiền
composer require league/flysystem-aws-s3-v3 "^3.0"
84, bạn có thể thêm tùy chọn composer require league/flysystem-aws-s3-v3 "^3.0"
08 vào mảng cấu hình của đĩacomposer require league/flysystem-aws-s3-v3 "^3.0"
74Tệp siêu dữ liệu
Ngoài việc đọc và ghi tệp, Laravel cũng có thể cung cấp thông tin về chính tệp. Ví dụ: phương pháp
use Illuminate\Support\Facades\Storage;
Storage::disk['local']->put['example.txt', 'Contents'];
16 có thể được sử dụng để lấy kích thước của tệp theo bytecomposer require league/flysystem-aws-s3-v3 "^3.0"
75Phương thức
use Illuminate\Support\Facades\Storage;
Storage::disk['local']->put['example.txt', 'Contents'];
17 trả về dấu thời gian UNIX của lần cuối cùng tệp được sửa đổicomposer require league/flysystem-aws-s3-v3 "^3.0"
76Đường dẫn tệp
Bạn có thể sử dụng phương pháp
use Illuminate\Support\Facades\Storage;
Storage::disk['local']->put['example.txt', 'Contents'];
18 để lấy đường dẫn cho một tệp nhất định. Nếu bạn đang sử dụng trình điều khiển composer require league/flysystem-aws-s3-v3 "^3.0"
6, điều này sẽ trả về đường dẫn tuyệt đối tới tệp. Nếu bạn đang sử dụng trình điều khiển composer require league/flysystem-aws-s3-v3 "^3.0"
7, phương thức này sẽ trả về đường dẫn tương đối tới tệp trong bộ chứa S3composer require league/flysystem-aws-s3-v3 "^3.0"
77Lưu trữ tập tin
Phương pháp
composer require league/flysystem-aws-s3-v3 "^3.0"
85 có thể được sử dụng để lưu trữ nội dung tệp trên đĩa. Bạn cũng có thể chuyển một PHP use Illuminate\Support\Facades\Storage;
Storage::disk['local']->put['example.txt', 'Contents'];
22 cho phương thức composer require league/flysystem-aws-s3-v3 "^3.0"
85, phương thức này sẽ sử dụng hỗ trợ luồng cơ bản của Flysystem. Hãy nhớ rằng, tất cả các đường dẫn tệp phải được chỉ định tương ứng với vị trí "gốc" được định cấu hình cho đĩacomposer require league/flysystem-aws-s3-v3 "^3.0"
78Viết không thành công
Nếu phương thức
composer require league/flysystem-aws-s3-v3 "^3.0"
85 [hoặc các thao tác "ghi"] không thể ghi tệp vào đĩa, thì use Illuminate\Support\Facades\Storage;
Storage::disk['local']->put['example.txt', 'Contents'];
25 sẽ được trả vềcomposer require league/flysystem-aws-s3-v3 "^3.0"
79Nếu muốn, bạn có thể xác định tùy chọn
use Illuminate\Support\Facades\Storage;
Storage::disk['local']->put['example.txt', 'Contents'];
26 trong mảng cấu hình của đĩa hệ thống tệp của mình. Khi tùy chọn này được xác định là use Illuminate\Support\Facades\Storage;
Storage::disk['local']->put['example.txt', 'Contents'];
27, các phương thức "ghi" chẳng hạn như composer require league/flysystem-aws-s3-v3 "^3.0"
85 sẽ đưa ra một phiên bản của use Illuminate\Support\Facades\Storage;
Storage::disk['local']->put['example.txt', 'Contents'];
29 khi thao tác ghi không thành côngcomposer require league/flysystem-aws-s3-v3 "^3.0"
90Chuẩn bị và thêm vào tệp
Các phương thức
use Illuminate\Support\Facades\Storage;
Storage::disk['local']->put['example.txt', 'Contents'];
30 và use Illuminate\Support\Facades\Storage;
Storage::disk['local']->put['example.txt', 'Contents'];
31 cho phép bạn ghi vào đầu hoặc cuối tệpcomposer require league/flysystem-aws-s3-v3 "^3.0"
91Sao chép & Di chuyển tệp
Phương pháp
use Illuminate\Support\Facades\Storage;
Storage::disk['local']->put['example.txt', 'Contents'];
32 có thể được sử dụng để sao chép một tệp hiện có sang một vị trí mới trên đĩa, trong khi phương thức use Illuminate\Support\Facades\Storage;
Storage::disk['local']->put['example.txt', 'Contents'];
33 có thể được sử dụng để đổi tên hoặc di chuyển một tệp hiện có sang một vị trí mớicomposer require league/flysystem-aws-s3-v3 "^3.0"
92Truyền phát tự động
Truyền tệp đến bộ lưu trữ giúp giảm đáng kể mức sử dụng bộ nhớ. Nếu bạn muốn Laravel tự động quản lý truyền trực tuyến một tệp nhất định đến vị trí lưu trữ của mình, bạn có thể sử dụng phương thức
use Illuminate\Support\Facades\Storage;
Storage::disk['local']->put['example.txt', 'Contents'];
34 hoặc use Illuminate\Support\Facades\Storage;
Storage::disk['local']->put['example.txt', 'Contents'];
35. Phương thức này chấp nhận phiên bản use Illuminate\Support\Facades\Storage;
Storage::disk['local']->put['example.txt', 'Contents'];
36 hoặc use Illuminate\Support\Facades\Storage;
Storage::disk['local']->put['example.txt', 'Contents'];
37 và sẽ tự động truyền tệp đến vị trí mong muốn của bạncomposer require league/flysystem-aws-s3-v3 "^3.0"
93Có một vài điều quan trọng cần lưu ý về phương pháp
use Illuminate\Support\Facades\Storage;
Storage::disk['local']->put['example.txt', 'Contents'];
34. Lưu ý rằng chúng tôi chỉ chỉ định tên thư mục chứ không phải tên tệp. Theo mặc định, phương thức use Illuminate\Support\Facades\Storage;
Storage::disk['local']->put['example.txt', 'Contents'];
34 sẽ tạo một ID duy nhất để dùng làm tên tệp. Phần mở rộng của tệp sẽ được xác định bằng cách kiểm tra loại MIME của tệp. Đường dẫn đến tệp sẽ được trả về bằng phương thức use Illuminate\Support\Facades\Storage;
Storage::disk['local']->put['example.txt', 'Contents'];
34 để bạn có thể lưu trữ đường dẫn, bao gồm tên tệp đã tạo, trong cơ sở dữ liệu của mìnhCác phương thức
use Illuminate\Support\Facades\Storage;
Storage::disk['local']->put['example.txt', 'Contents'];
34 và use Illuminate\Support\Facades\Storage;
Storage::disk['local']->put['example.txt', 'Contents'];
35 cũng chấp nhận một đối số để chỉ định "khả năng hiển thị" của tệp được lưu trữ. Điều này đặc biệt hữu ích nếu bạn đang lưu trữ tệp trên ổ đĩa đám mây như Amazon S3 và muốn tệp có thể truy cập công khai thông qua các URL được tạocomposer require league/flysystem-aws-s3-v3 "^3.0"
94Tải lên tệp
Trong các ứng dụng web, một trong những trường hợp sử dụng phổ biến nhất để lưu trữ tệp là lưu trữ các tệp do người dùng tải lên như ảnh và tài liệu. Laravel giúp dễ dàng lưu trữ các tệp đã tải lên bằng cách sử dụng phương pháp
use Illuminate\Support\Facades\Storage;
Storage::disk['local']->put['example.txt', 'Contents'];
43 trên một phiên bản tệp đã tải lên. Gọi phương thức use Illuminate\Support\Facades\Storage;
Storage::disk['local']->put['example.txt', 'Contents'];
43 với đường dẫn mà bạn muốn lưu trữ tệp đã tải lêncomposer require league/flysystem-aws-s3-v3 "^3.0"
95Có một vài điều quan trọng cần lưu ý về ví dụ này. Lưu ý rằng chúng tôi chỉ chỉ định tên thư mục, không phải tên tệp. Theo mặc định, phương thức
use Illuminate\Support\Facades\Storage;
Storage::disk['local']->put['example.txt', 'Contents'];
43 sẽ tạo một ID duy nhất để dùng làm tên tệp. Phần mở rộng của tệp sẽ được xác định bằng cách kiểm tra loại MIME của tệp. Đường dẫn đến tệp sẽ được trả về bằng phương thức use Illuminate\Support\Facades\Storage;
Storage::disk['local']->put['example.txt', 'Contents'];
43 để bạn có thể lưu trữ đường dẫn, bao gồm tên tệp đã tạo, trong cơ sở dữ liệu của mìnhBạn cũng có thể gọi phương thức
use Illuminate\Support\Facades\Storage;
Storage::disk['local']->put['example.txt', 'Contents'];
34 trên mặt tiền composer require league/flysystem-aws-s3-v3 "^3.0"
84 để thực hiện thao tác lưu trữ tệp tương tự như ví dụ trêncomposer require league/flysystem-aws-s3-v3 "^3.0"
96Chỉ định tên tệp
Nếu bạn không muốn tên tệp được gán tự động cho tệp được lưu trữ của mình, bạn có thể sử dụng phương thức
use Illuminate\Support\Facades\Storage;
Storage::disk['local']->put['example.txt', 'Contents'];
49, phương thức này nhận đường dẫn, tên tệp và đĩa [tùy chọn] làm đối số của nócomposer require league/flysystem-aws-s3-v3 "^3.0"
97Bạn cũng có thể sử dụng phương pháp
use Illuminate\Support\Facades\Storage;
Storage::disk['local']->put['example.txt', 'Contents'];
35 trên mặt tiền composer require league/flysystem-aws-s3-v3 "^3.0"
84, phương pháp này sẽ thực hiện thao tác lưu trữ tệp giống như ví dụ trêncomposer require league/flysystem-aws-s3-v3 "^3.0"
98Cảnh báo
Các ký tự unicode không in được và không hợp lệ sẽ tự động bị xóa khỏi đường dẫn tệp. Do đó, bạn có thể muốn làm sạch đường dẫn tệp của mình trước khi chuyển chúng sang các phương thức lưu trữ tệp của Laravel. Đường dẫn tệp được chuẩn hóa bằng phương pháp52.
use Illuminate\Support\Facades\Storage;
Storage::disk['local']->put['example.txt', 'Contents'];
Chỉ định một đĩa
Theo mặc định, phương pháp
use Illuminate\Support\Facades\Storage;
Storage::disk['local']->put['example.txt', 'Contents'];
43 của tệp đã tải lên này sẽ sử dụng đĩa mặc định của bạn. Nếu bạn muốn chỉ định một đĩa khác, hãy chuyển tên đĩa làm đối số thứ hai cho phương thức use Illuminate\Support\Facades\Storage;
Storage::disk['local']->put['example.txt', 'Contents'];
43composer require league/flysystem-aws-s3-v3 "^3.0"
99Nếu bạn đang sử dụng phương thức
use Illuminate\Support\Facades\Storage;
Storage::disk['local']->put['example.txt', 'Contents'];
49, bạn có thể chuyển tên đĩa làm đối số thứ ba cho phương thứccomposer require league/flysystem-aws-s3-v3 "^3.0"
20Thông tin tệp đã tải lên khác
Nếu bạn muốn lấy tên gốc và phần mở rộng của tệp đã tải lên, bạn có thể làm như vậy bằng cách sử dụng các phương pháp
use Illuminate\Support\Facades\Storage;
Storage::disk['local']->put['example.txt', 'Contents'];
56 và use Illuminate\Support\Facades\Storage;
Storage::disk['local']->put['example.txt', 'Contents'];
57composer require league/flysystem-aws-s3-v3 "^3.0"
21Tuy nhiên, hãy nhớ rằng các phương pháp
use Illuminate\Support\Facades\Storage;
Storage::disk['local']->put['example.txt', 'Contents'];
56 và use Illuminate\Support\Facades\Storage;
Storage::disk['local']->put['example.txt', 'Contents'];
57 được coi là không an toàn, vì tên tệp và phần mở rộng có thể bị giả mạo bởi người dùng ác ý. Vì lý do này, bạn thường nên sử dụng các phương pháp use Illuminate\Support\Facades\Storage;
Storage::disk['local']->put['example.txt', 'Contents'];
60 và use Illuminate\Support\Facades\Storage;
Storage::disk['local']->put['example.txt', 'Contents'];
61 để lấy tên và phần mở rộng cho tệp tải lên nhất địnhcomposer require league/flysystem-aws-s3-v3 "^3.0"
22tập tin hiển thị
Trong tích hợp Flysystem của Laravel, "khả năng hiển thị" là sự trừu tượng hóa các quyền đối với tệp trên nhiều nền tảng. Các tệp có thể được khai báo
composer require league/flysystem-ftp "^3.0"
3 hoặc use Illuminate\Support\Facades\Storage;
Storage::disk['local']->put['example.txt', 'Contents'];
63. Khi một tệp được khai báo là composer require league/flysystem-ftp "^3.0"
3, bạn đang chỉ ra rằng những người khác thường có thể truy cập tệp đó. Ví dụ: khi sử dụng trình điều khiển S3, bạn có thể truy xuất URL cho tệp composer require league/flysystem-ftp "^3.0"
3Bạn có thể đặt chế độ hiển thị khi ghi tệp qua phương thức
composer require league/flysystem-aws-s3-v3 "^3.0"
85composer require league/flysystem-aws-s3-v3 "^3.0"
23Nếu tệp đã được lưu trữ, khả năng hiển thị của tệp có thể được truy xuất và đặt thông qua các phương thức
use Illuminate\Support\Facades\Storage;
Storage::disk['local']->put['example.txt', 'Contents'];
67 và use Illuminate\Support\Facades\Storage;
Storage::disk['local']->put['example.txt', 'Contents'];
68composer require league/flysystem-aws-s3-v3 "^3.0"
24Khi tương tác với các tệp đã tải lên, bạn có thể sử dụng các phương pháp
use Illuminate\Support\Facades\Storage;
Storage::disk['local']->put['example.txt', 'Contents'];
69 và use Illuminate\Support\Facades\Storage;
Storage::disk['local']->put['example.txt', 'Contents'];
70 để lưu trữ tệp đã tải lên với khả năng hiển thị composer require league/flysystem-ftp "^3.0"
3composer require league/flysystem-aws-s3-v3 "^3.0"
25Tệp cục bộ & Khả năng hiển thị
Khi sử dụng trình điều khiển
composer require league/flysystem-aws-s3-v3 "^3.0"
6, khả năng hiển thị của composer require league/flysystem-ftp "^3.0"
3 chuyển thành quyền use Illuminate\Support\Facades\Storage;
Storage::disk['local']->put['example.txt', 'Contents'];
74 đối với thư mục và quyền use Illuminate\Support\Facades\Storage;
Storage::disk['local']->put['example.txt', 'Contents'];
75 đối với tệp. Bạn có thể sửa đổi ánh xạ quyền trong tệp cấu hình composer require league/flysystem-ftp "^3.0"
0 của ứng dụngcomposer require league/flysystem-aws-s3-v3 "^3.0"
26Xóa các tập tin
Phương thức
use Illuminate\Support\Facades\Storage;
Storage::disk['local']->put['example.txt', 'Contents'];
77 chấp nhận một tên tệp hoặc một mảng tệp để xóacomposer require league/flysystem-aws-s3-v3 "^3.0"
27Nếu cần, bạn có thể chỉ định đĩa mà các tệp sẽ bị xóa khỏi đó
composer require league/flysystem-aws-s3-v3 "^3.0"
28thư mục
Nhận tất cả các tệp trong một thư mục
Phương thức
use Illuminate\Support\Facades\Storage;
Storage::disk['local']->put['example.txt', 'Contents'];
78 trả về một mảng gồm tất cả các tệp trong một thư mục nhất định. Nếu bạn muốn truy xuất danh sách tất cả các tệp trong một thư mục nhất định bao gồm tất cả các thư mục con, bạn có thể sử dụng phương thức use Illuminate\Support\Facades\Storage;
Storage::disk['local']->put['example.txt', 'Contents'];
79composer require league/flysystem-aws-s3-v3 "^3.0"
29Nhận tất cả các thư mục trong một thư mục
Phương thức
use Illuminate\Support\Facades\Storage;
Storage::disk['local']->put['example.txt', 'Contents'];
80 trả về một mảng gồm tất cả các thư mục trong một thư mục nhất định. Ngoài ra, bạn có thể sử dụng phương pháp use Illuminate\Support\Facades\Storage;
Storage::disk['local']->put['example.txt', 'Contents'];
81 để lấy danh sách tất cả các thư mục trong một thư mục nhất định và tất cả các thư mục con của nócomposer require league/flysystem-aws-s3-v3 "^3.0"
0Tạo một thư mục
Phương thức
use Illuminate\Support\Facades\Storage;
Storage::disk['local']->put['example.txt', 'Contents'];
82 sẽ tạo thư mục đã cho, bao gồm mọi thư mục con cần thiếtcomposer require league/flysystem-aws-s3-v3 "^3.0"
1Xóa một thư mục
Cuối cùng, phương pháp
use Illuminate\Support\Facades\Storage;
Storage::disk['local']->put['example.txt', 'Contents'];
83 có thể được sử dụng để xóa một thư mục và tất cả các tệp của nócomposer require league/flysystem-aws-s3-v3 "^3.0"
2Hệ thống tập tin tùy chỉnh
Tích hợp Flysystem của Laravel cung cấp hỗ trợ cho một số "trình điều khiển" sẵn có; . Bạn có thể tạo trình điều khiển tùy chỉnh nếu bạn muốn sử dụng một trong những bộ điều hợp bổ sung này trong ứng dụng Laravel của mình
Để xác định hệ thống tệp tùy chỉnh, bạn sẽ cần bộ điều hợp Flysystem. Hãy thêm bộ điều hợp Dropbox do cộng đồng duy trì vào dự án của chúng ta
composer require league/flysystem-aws-s3-v3 "^3.0"
3Tiếp theo, bạn có thể đăng ký trình điều khiển theo phương pháp
use Illuminate\Support\Facades\Storage;
Storage::disk['local']->put['example.txt', 'Contents'];
13 của một trong những nhà cung cấp dịch vụ ứng dụng của bạn. Để thực hiện điều này, bạn nên sử dụng phương pháp use Illuminate\Support\Facades\Storage;
Storage::disk['local']->put['example.txt', 'Contents'];
85 của mặt tiền composer require league/flysystem-aws-s3-v3 "^3.0"
84composer require league/flysystem-aws-s3-v3 "^3.0"
4Đối số đầu tiên của phương thức
use Illuminate\Support\Facades\Storage;
Storage::disk['local']->put['example.txt', 'Contents'];
85 là tên của trình điều khiển và đối số thứ hai là một bao đóng nhận các biến use Illuminate\Support\Facades\Storage;
Storage::disk['local']->put['example.txt', 'Contents'];
88 và use Illuminate\Support\Facades\Storage;
Storage::disk['local']->put['example.txt', 'Contents'];
89. Việc đóng cửa phải trả về một thể hiện của use Illuminate\Support\Facades\Storage;
Storage::disk['local']->put['example.txt', 'Contents'];
90. Biến use Illuminate\Support\Facades\Storage;
Storage::disk['local']->put['example.txt', 'Contents'];
89 chứa các giá trị được xác định trong composer require league/flysystem-aws-s3-v3 "^3.0"
5 cho đĩa được chỉ địnhKhi bạn đã tạo và đăng ký nhà cung cấp dịch vụ của tiện ích mở rộng, bạn có thể sử dụng trình điều khiển
use Illuminate\Support\Facades\Storage;
Storage::disk['local']->put['example.txt', 'Contents'];
93 trong tệp cấu hình composer require league/flysystem-aws-s3-v3 "^3.0"
5 của mình