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

上传文件

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

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

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

《L02 从零构建论坛系统》
以构建论坛项目 LaraBBS 为线索,展开对 Laravel 框架的全面学习。应用程序架构思路贴近 Laravel 框架的设计哲学。
《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年前

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