摘要
正在生成中……
在 Laravel 中,Storage
门面提供了一种强大且方便的方法来与文件系统进行交互。以下是如何使用它的基本步骤:
- 首先,确保在你的控制器头部使用了
Storage
门面:
use Illuminate\Support\Facades\Storage;
- 创建文件:
你可以使用 put
方法将一个文件放入存储盘上. put
方法接受文件的路径和文件的内容作为参数:
Storage::disk('local')->put('example.txt', 'Contents');
- 读取文件:
要读取一个文件的原始内容,可以使用 get
方法,并且将文件的路径作为参数:
$contents = Storage::get('example.txt');
- 删除文件:
delete
方法可用于删除文件:
Storage::delete('example.txt');
记住,所有文件操作都是相对于你在 config/filesystems.php
文件中配置的特定磁盘的。
以上都是在使用 ‘local’ 磁盘,也就是在 storage/app
目录。如果你想使用其他磁盘,你可以使用 disk
方法在 put
、get
和 delete
前调用。例如,如果你想使用 public
磁盘,你可以这样操作:
Storage::disk('public')->put('example.txt', 'Contents');
示例:如下代码会把文件存储到哪里?
if ($user->cover_path) {
Storage::disk('public')->delete($user->cover_path);
}
$path = $cover->store('user-' . $user->id, 'public');
$user->update(['cover_path' => $path]);
$success = 'Your cover image was updated';
在你的代码中,当你使用Storage::disk('public')
时,你会得到一个驱动器实例,这个驱动器关联到你在config/filesystems.php
文件中定义为"public"的磁盘。文件会被存储在这个磁盘指定的位置。
这个'public'
磁盘是使用public
驱动器的一个默认设置,它定义在config/filesystems.php
定义文件中。默认情况下,public
磁盘的root是你的public/storage
目录,这个目录是通过artisan命令
php artisan storage:link
创建的符号链接到storage/app/public
。
所以,在你的示例代码中,$cover->store('user-' . $user->id, 'public');
会把$cover
存储到storage/app/public/user-{userid}/
文件夹,{userid}
是当前用户的id。
$path
变量将包含文件在public
磁盘的路径,像是user-{userid}/filename.extension
,这个路径存储在你的用户模型的cover_path
属性中。
然后,你可以使用asset
或者Storage::url
来获取这个文件的url。
如果你需要改变默认的存储路径,你需要在filesystems.php
中找到'public'
磁盘并修改它的root
属性。