[笔记]laravel的上传文件或者图片的方法
一个上传文件或者图片的方法,在这里做一下笔记
public function fileUpload(Request $request)
{
if ($request->hasFile('picture')) {
$picture = $request->file('picture');
if (!$picture->isValid()) {
abort(400, '无效的上传文件');
}
// 文件扩展名
$extension = $picture->getClientOriginalExtension();
// 文件名
$fileName = $picture->getClientOriginalName();
// 生成新的统一格式的文件名
$newFileName = md5($fileName . time() . mt_rand(1, 10000)) . '.' . $extension;
// 图片保存路径
$savePath = 'images/' . $newFileName;
// Web 访问路径
$webPath = '/storage/' . $savePath;
// 将文件保存到本地 storage/app/public/images 目录下,先判断同名文件是否已经存在,如果存在直接返回
if (Storage::disk('public')->has($savePath)) {
return response()->json(['path' => $webPath]);
}
// 否则执行保存操作,保存成功将访问路径返回给调用方
if ($picture->storePubliclyAs('images', $newFileName, ['disk' => 'public'])) {
return response()->json(['path' => $webPath]);
}
abort(500, '文件上传失败');
} else {
abort(400, '请选择要上传的文件');
}
}
本作品采用《CC 协议》,转载必须注明作者和本文链接
程序员的福利:免费获取 JetBrains 全家桶激活码 ,
推荐:【点击这里获取】
。。。激活码适用:AppCode, CLion, DataGrip, DataSpell, dotCover, dotMemory, dotTrace, goland, IntelliJ IDEA Ultimate, phpstorm, pycharm, ReSharper
推荐文章: