You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Laravel上传图片未保存至指定存储目录问题求助

问题分析与解决

你遇到的问题是文件实际存储路径和预期不一致,原因如下:

你的filesystems.php中配置的public磁盘根目录为storage_path('app/public'),而调用store('storage/thumbnails')时,传入的路径是相对于磁盘根目录的,所以文件实际被存在了:

storage/app/public/storage/thumbnails/k0TF3NW6WvWWjHuEtZ0OW7TTRQbfSB6lvD1GJls3.png

而你查看的是storage/thumbnails目录,自然找不到目标文件。

解决步骤

1. 修正存储路径参数

修改Controller中的代码,将存储路径改为thumbnails(移除前缀storage/):

$path = request()->file('thumbnail')->store('thumbnails');
return 'Done: ' . $path;

此时文件会被存储到storage/app/public/thumbnails/目录下,这是public磁盘对应的正确位置。

2. (可选)显式指定存储磁盘

若需要明确指定存储磁盘,可添加第二个参数:

$path = request()->file('thumbnail')->store('thumbnails', 'public');

由于你已将default设置为public,此操作和步骤1效果一致。

3. 创建符号链接(用于Web访问)

如果需要通过浏览器访问这些图片,需运行Artisan命令创建public/storage到storage/app/public的符号链接:

php artisan storage:link

之后即可通过{{ asset('storage/thumbnails/文件名') }}格式的URL访问图片。

内容的提问来源于stack exchange,提问作者Niek Neuvel

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.17 04:40:44