Laravel 上传图片及页面展示
网上资料实在太乱,想找个真实好用的代码真的太难了,我讨厌那些弯弯绕绕的繁琐,还有那些收费的,这里有你需要的最好,希望少走弯路,祝君事业有成。
1、下面为 Controller 里上传功能代码:
// Controller 里上传部分代码
public function store(Request $request)
{
// validate 校验上传文件是否为图片类型
// 手册地址:https://learnku.com/docs/laravel/8.x/validation/9374#rule-image
$request->validate([
'image' => 'bail|required|image',
]);
// 验证上传的文件是否有效
if (!$request->file('image')->isValid()) {
return back()->withErrors('上传的文件无效,请检查目录保存权限!')->withInput();;
}
// 上传文件,并将图片存储到 storage\app\public 目录下
$image = $request->file('image')->store('image', 'public');
// 这里的$image 就是上传图片信息
//比如:image/fEdT0zhSGyMadGDnkfI0LPexENDs2SHl1Kbz5Iq5.jpg
}
2、下面为页面展示图片代码:
<img src="{{ asset('storage/' . $row->image) }}">
3、最重要的事情来了,必须执行该步骤,页面图片才会显示:
phpstorm 执行命令: php artisan storage:link
这里其实就是在public下创建软连接,或者叫快捷方式,执行后目录下会多了一个文件,见下图:
- 如果你的phpstorm无法执行命令,可能没有配置php环境,需要在系统环境变量的PATH里加上php环境变量;有问题 欢迎留言0.0
下面是手册相关截图: