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

上传文件

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

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

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

《L01 基础入门》
我们将带你从零开发一个项目并部署到线上,本课程教授 Web 开发中专业、实用的技能,如 Git 工作流、Laravel Mix 前端工作流等。
《G01 Go 实战入门》
从零开始带你一步步开发一个 Go 博客项目,让你在最短的时间内学会使用 Go 进行编码。项目结构很大程度上参考了 Laravel。
讨论数量: 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年前