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

Laravel使用storeAs()存储图片至指定storage目录异常

Laravel指定Storage目录上传图片失败的解决方法

问题原因

你当前代码里的storeAs第一个参数写了'public/images/schools/logos',但你的public磁盘配置中root已经指向storage_path('app/public'),这会导致系统在storage/app/public下再创建一个public子目录,最终路径变成storage/app/public/public/images/schools/logos/,而非你期望的storage/app/public/images/schools/logos/。

修正代码

直接去掉路径开头的public/前缀,因为public磁盘已经帮你定位到storage/app/public目录了:

$filename = 'f032ec59-d568-4107-86d8-97fad7986273.png';
$request->file($type)->storeAs('images/schools/logos', $filename, 'public');

注意:第三个参数'public'可以明确指定使用public磁盘,避免默认磁盘(通常是local)的影响,确保路径正确。

额外验证步骤

执行代码后,图片会被正确存储到storage/app/public/images/schools/logos/目录下。如果需要通过浏览器访问,确保已经创建了符号链接:

php artisan storage:link

执行后,public/storage会链接到storage/app/public,前端访问路径可写为{{ asset('storage/images/schools/logos/'.$filename) }}。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.17 18:22:35