关于文件路径的一个小问题.

上传文件

$path = $request->file('file')->store('public');
dd($path);  // 

这里返回的路径是 public/xxx.jpg 但是访问路径是 storage/xxx.jpg
那么数据库中应该存那个?
如果存 public/xxx.jpg 的话 访问的时候就需要替换一下.
如果存 storage/xxx.jpg的话 对文件操作的时候(比如删除,移动)就需要替换成public/xxx.jpg

有没有什么快捷的方法或者函数可以让它们互转的?

《L05 电商实战》
从零开发一个电商项目,功能包括电商后台、商品 & SKU 管理、购物车、订单管理、支付宝支付、微信支付、订单退款流程、优惠券等
《L01 基础入门》
我们将带你从零开发一个项目并部署到线上,本课程教授 Web 开发中专业、实用的技能,如 Git 工作流、Laravel Mix 前端工作流等。
讨论数量: 11

php artisan storage:link

运行这个, 你试试,会做一个软连接, 存储 public 就ok

3年前 评论
whcoding (楼主) 3年前
whcoding (楼主) 3年前
kis龍 (作者) 3年前

直接存 xxx.jpg ,使用的时候用 storage_pathpublic_path

3年前 评论
whcoding (楼主) 3年前
ztlcoder (作者) 3年前

建议贴出 filesystems.php 里的磁盘配置

3年前 评论
$path = $request->file('file')->move(public_path()  . '/upload');

这不就统一路径了?

3年前 评论

如果使用软链,可以存储2种路径,或者自己写一个转换的助手函数,使用ORM的访问器转换读取的访问路径。方案很多。不过现在为了加快网站响应速度,都会使用oss。

3年前 评论
whcoding (楼主) 3年前

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!