Laravel 5.6中store()方法始终使用默认磁盘问题解决
Laravel 文件上传路径不符合预期的解决办法
之前我为了把上传的图片存到public目录下的storage/cars文件夹,做了这两步配置:
- 使用了这段上传代码:
$file->store('storage/cars/' . $img . 'uploads')
- 在
config/filesystems.php里配置了自定义磁盘:
'uploads' => [ 'driver' => 'local', 'root' => public_path(), ],
一开始这么用是正常的,但后来哪怕保留了同样的配置,文件还是默认传到了storage/app/storage/cars目录,完全没按照预期放到public下面。
问题根源
仔细看store方法的参数就发现问题了:我之前错误地用点号把路径和磁盘名拼在了一起,而Laravel的store方法第二个参数才是指定磁盘的位置,应该用逗号分隔两个参数。
修正后的代码
把上传代码改成这样就可以了:
$file->store('storage/cars/' . $img , 'uploads')
修正之后,文件就会按照uploads磁盘的配置,直接上传到public目录对应的路径里了。
内容的提问来源于stack exchange,提问作者user8517929
相关产品推荐
相关产品推荐

