Laravel 8 图片上传验证
如何使用Laravel 8框架自带的验证图片上传验证
使用框架的自带的验证其实不难 话不多说 直接上代码
public function Uploads(Request $request)
{
//接收用户头像
$validator = Validator::make($request->file(),[
'file' => 'file|max:1000|mimes:jpeg,png',
],[
//验证是否为文件
'file.file' => '请确认你的头像格式',
//验证文件上传大小
'file.max' => '头像最大上传大小为1M',
//验证上传文件格式
'file.mimes' => '请确认上传为jpg或jpeg的格式图片',
]);
if ($validator->fails()) {//如果有错误
return ['error'=>$validator->errors()]; //返回得到错误
}
$file=$request->file('file')->store('','uploads');
$path="http://www.holiday.com/api/uploads".$file;
if ($path){
return (['code'=>200,'msg'=>'上传成功','file'=>$path]);
}
else{
return (['code'=>404,'msg'=>'未找到资源','data'=>'']);
}
}
以上代码内容转载于: 四个 Laravel 图片验证规则
.
规则 1. image
验证上传规则是否为image格式
public function rules()
{
return [
'uploaded_photo' => 'image',
];
}
最常见的问题可能是 什么是图像 ?
文档说明:验证中的文件必须是图像 (jpeg、png、bmp、gif 或 svg)
规则 2. mimes
如果您觉得上面列出的图像扩展名太多了,您可以将它们限制为特定的 JPG / PNG,例如:
public function rules()
{
return [
'photo' => 'mimes:jpeg,png',
];
}
可以使用上面的方式简化验证,即使您只需要指定扩展名,这个规则实际上是通过读取文件的内容并猜测其 MIME 类型来验证文件的 MIME 类型。这就是为什么 jpeg 对于 MIME 类型 image/jpeg 进行验证就足够了,其中还包括 .jpg 扩展名。
在此处了解更多关于 MIME 类型的信息。
规则 3. 大小
该规则很有趣,因为它适用于字符串和文件字段。如果是字符串,则以字符为单位验证长度,但是如果是上传的文件,则以文件大小 (以千字节为单位) 进行验证。
public function rules()
{
return [
'photo' => 'image|size:1024', // 1 MB
];
}
规则 4. 尺寸
还有更具体的验证,您可以限制图像的最小 / 最大宽度 / 高度。
public function rules()
{
return [
'photo' => 'dimensions:min_width=100,min_height=100,max_width=1000,max_height=1000',
];
}
不仅如此,您还可以指定一个比率,例如 3/2,它将覆盖 600×400 和 300×200 等:
public function rules()
{
return [
'photo' => 'dimensions:ratio=3/2',
];
}
最后,你甚至可以结合使用 width + height + ratio,这会稍微复杂一些:
use Illuminate.alidation.ule;
Validator::make($data, [
'avatar' => [
'required',
Rule::dimensions()->maxWidth(1000)->ratio(3/2),
],
]);
因此,这是四个易于应用的规则。在 官方文档 中可以找到更多验证规则