我正在使用以下代码使用laravel上传图像:
$logoPath = $request->file('logo')->store('uploads/clients');
工作正常,文件已上传到storage/app/uploads/clients/
。
然后,我运行命令php artisan storage:link
在public中创建符号链接并成功创建它。问题在于此符号链接仅显示“存储/应用/公共”中的文件,但是正如我所说,我的图像已保存在storage/app/uploads/clients
中。
我已经在其他项目中执行了此过程,并且工作正常,我真的不知道这次我做了什么不同。
有什么想法吗?
答案 0 :(得分:1)
似乎您正在使用默认磁盘local
,该磁盘将文件存储在storage/app
中配置的config/filesystems.php
目录中,但是您想要的是public
磁盘通过运行storage/app/public
将文件存储在链接到公用目录的php artisan storage:link
中。
这是一些解决方案:
指定要使用的磁盘:
$request()->file('logo')->store('uploads/clients', ['disk' => 'public']);
OR
config/filesystems.php
中创建一个新磁盘,并将其与您的uploads/clients
链接,然后将FILESYSTEM_DRIVER
中的默认config/filesystems.php
更改为新磁盘。OR
FILESYSTEM_DRIVER
中的默认public
更改为config/filesystems.php
。