Filesystems trong Laravel

04/01/2022   Laravel
Filesystems trong Laravel
1. Filesystems là gì
- Filesystems trong Laravel cung cấp các cách thức để làm việc với files.
- Disk là đại diện cho các đĩa lưu trữ như: local, public, s3; mỗi disk có một cách thức (driver) khác nhau: local, s3...
- Xem thêm: https://laravel.com/docs/8.x/filesystem
2. Thư viện Filesystems
- dùng facades Storage trong Illuminate\Support\Facades\Storage, đại diện cho \Illuminate\Filesystem\FilesystemManager
- Xem thêm: vendor/laravel/framework/src/Illuminate/Filesystem
- Vd: Storage::disk('local')->put('fileLocal.txt', 'HELLO'); sử dụng
+ disk: local
+ driver: local
+ root (path): /storage/app/
+ file save: /storage/app/fileLocal.txt
3. Các method trong Filesystems
- tạo file: Storage::disk('public')->put('filePublic.txt', 'HELLO');
- lấy url: echo $file=asset('storage/filePublic.txt').'<br>';
- lấy url: echo $url = Storage::disk('public')->url('filePublic.txt').'<br>';
- lấy content: echo $contents = Storage::disk('public')->get('filePublic.txt').'<br>';
- xem tồn tại: echo $exists = Storage::disk('public')->exists('filePublic.txt').'<br>';
- lấy size: echo $size = Storage::disk('public')->size('filePublic.txt').'<br>';
- lấy list files: print_r($files = Storage::disk('public')->files('/'));echo '<br>';
- lấy list all files: print_r($files = Storage::disk('public')->allfiles('/'));echo '<br>';
- tạo dir: Storage::disk('public')->makeDirectory('1');
- tạo dir: Storage::disk('public')->makeDirectory('2');
- tạo dir: Storage::disk('public')->makeDirectory('1/2');
- tạo dir: Storage::disk('public')->makeDirectory('2/2');
- lấy list dirs: print_r($files = Storage::disk('public')->directories('/'));echo '<br>';
- lấy list all dirs: print_r($files = Storage::disk('public')->allDirectories('/'));echo '<br>';
- xóa file: echo Storage::disk('public')->delete('filePublic.txt');
- xóa dir: Storage::disk('public')->deleteDirectory('1');
- xóa dir: Storage::disk('public')->deleteDirectory('2');
//handle with request
- store method: $path = $request->file('avatar')->store('avatars');
- storeAs method: $path = $request->file('avatar')->storeAs('avatars', $request->user()->id);//parameter: storeAs(path,fileName)

