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

Laravel 5.6中无法将上传图片保存至public目录问题求助

解决Laravel上传图片无法保存到public目录的问题

嘿,我来帮你搞定这个Laravel图片上传的问题~从你给出的配置和代码片段来看,核心问题是没有明确指定使用public磁盘存储,再加上可能符号链接没配置到位,我们一步步来修复:

1. 修改上传代码,指定public磁盘

默认情况下,store()方法会用Laravel配置里的「默认磁盘」(一般是local,对应storage/app目录),而不是你配置好的public磁盘。你需要在store()方法的第二个参数里明确指定磁盘:

if (array_key_exists('logo', $validated)) {
    // 第一个参数是public磁盘下的子目录,可根据你的需求自定义
    $logoPath = $validated['logo']->store('uploads/logos', 'public');
    
    // 后续如果要把路径存到数据库,直接存$logoPath就行
    // 前端访问的时候用 asset("storage/{$logoPath}") 就能拿到完整URL
}

2. 创建storage到public的符号链接

Laravel的public磁盘实际指向storage/app/public目录,但要让外部用户能访问到这里的文件,必须创建一个从public/storage到storage/app/public的符号链接。在终端运行这个Artisan命令:

php artisan storage:link

如果是在生产环境(比如共享主机)没法运行命令,你可以手动创建符号链接,或者把这个命令加到你的部署脚本里。

3. 最后检查权限和配置

  • 确认config/filesystem.php里的public驱动配置和你贴的完全一致,没问题。
  • 确保storage/app/public和public/storage目录有服务器用户的写入权限(比如给www-data分配读写权限)。

这样调整后,上传的图片就会乖乖存到storage/app/public/uploads/logos目录,同时通过your-domain.com/storage/uploads/logos/xxx.jpg就能访问到啦~

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.25 07:46:01