一个微不足道的场景:
1)使用
将公共/存储符号链接到存储/ app / publicphp artisan storage:link
2)使用
上传文件$path = $request->file('avatar')->store('avatars');
3)根据我的理解,我应该可以访问此网址下的文件 - www.example.com/storage/avatars/avatar.jpg
然而,我在第三步中获得的路径实际上是public / avatars / avatar.jpg,所以我最终用''替换'public /'部分以获得正确的路径。
似乎我错过了一些东西,但我找不到确切的东西。
感谢您的帮助!
答案 0 :(得分:3)
使用公共磁盘时,应将文件存储在公共磁盘中。
您可以在商店功能的第二个参数中指定磁盘。
$path = $request->file('avatar')->store(
'avatars', 'public'
);
这可确保文件存储在storage/app/public
中,公共目录中的storage
符号链接指向storage/app/public
。
现在你可以简单地使用:
asset('storage/avatars/avatar.jpg');
它将从storage/app/public/avatars/avatar.jpg
您可能需要检查storeAs
以重命名文件名或使用子目录来确保您的文件名是唯一的。