【发布时间】:2021-03-07 10:00:08
【问题描述】:
我在 laravel 7 中创建了自定义验证,但文件验证无法正常工作。 我在验证中限制了大小和格式,用户遵守规则,但是当他们提交表单时,验证系统会向他们显示与文件相关的错误。
例如,文件不能大于 1 MB,用户上传小于 1 MB,但表单不提交并在验证中显示自定义消息。
同样的事情发生在 mime 和格式上
其他工作正常。
我在控制器中的验证:
public function store(Request $request)
{
$this->validate($request,[
'customername'=>'required',
'phone'=>'required',
'producttype'=>'required',
'width'=>'required',
'height'=>'required',
'model'=>'required',
'material'=>'required',
'count'=>'required',
'sku'=>'required|unique:offlineorders,SKU',
'image'=>'image|mimes:jpeg,png,jpg,svg|size:1048',
],[
'customername.required'=>'لطفا نام مشتری را وارد کنید',
'phone.required'=>'لطفا شماره تماس مشتری را وارد کنید',
'producttype.required'=>'لطفا نوع محصول را مشخص کنید',
'width.required'=>'لطفا طول محصول را مشخص کنید',
'height.required'=>'لطفا عرض محصول را مشخص کنید',
'model.required'=>'لطفا مدل محصول را تعیین کنید',
'material.required'=>'لطفا جنس بکار برده شده در محصول را تعیین کنید',
'count.required'=>'لطفا تعداد سفارش را مشخص کنید',
'sku.required'=>'لطفا شناسه سفارش را مشخص کنید',
'sku.unique'=>'سفارشی با این شناسه از قبل ثبت شده است',
'image.image'=>'فایل اپلود شده باید عکس باشد',
'image.mimes'=>'لطفا از فرمت های مربوط به عکس در فایل مربوطه استفاده کنید',
'image.size'=>'عکس مورد نظر نباید بیش تر از 1 مگ باشد '
]);
if ($request['image']){
$file = $request['image'];
$imgname = $file->getClientOriginalName();
$this->ImageUploader($file, '/upload/orders/');
}else{
$imgname=null;
}
if ($request->has('paymentstatus')){
$totalprice=$request->totalprice;
$beforeprice=$request->beforeprice;
$debatorprice=$totalprice-$beforeprice;
}else{
$debatorprice=0;
}
offlineorder::create([
'ProductType'=>$request->producttype,
'OtherProduct'=>$request->otherproduct,
'CustomerName'=>$request->customername,
'CorporateName'=>$request->corporatename,
'Phone'=>$request->phone,
'Width'=>$request->width,
'Height'=>$request->height,
'Model'=>$request->model,
'Material'=>$request->material,
'Color'=>$request->color,
'Count'=>$request->count,
'Kalaf'=>$request->kalaf,
'Image'=>$imgname,
'Text'=>$request->text,
'Description'=>$request->description,
'TotalPrice'=>$request->totalprice,
'BeforePrice'=>$request->beforeprice,
'PaymentStatus'=>$request->paymentstatus,
'DebtorPrice'=>$debatorprice,
'SKU'=>$request->sku,
]);
session()->flash('add_order','سفارش شما با موفقیت ثبت شد');
return back();
}
【问题讨论】:
-
试试这个'image|mimes:jpeg,png,jpg,svg|max:1048'。使用最大而不是大小
-
是的,我先试了一下,但没用@sd077
-
你尝试后遇到了什么错误
-
您在表单中使用了 enctype=multipart/form-data 吗?
标签: php laravel forms validation