上传多个图像与系统验证不起作用



我尝试使用验证系统上传多个图像,即使我上传jpeg类型的图像,它也会给我验证系统错误。图像必须是jpeg、jpg、png、gif、svg类型的文件。

registerblade.php

<form method="POST" action="{{ route('register') }}" enctype="multipart/form-data">
@csrf
<div class="form-group" id="divim">
<label>photos<span class="text-hightlight">*</span></label>
<input class="form-control" type="file" name="images[]" value="{{ old('images') }}" multiple>
@error('images')
<span class="invalid-feedback" role="alert">
<strong>{{ $message }}</strong>
</span>
@enderror
</div>

<div class="col-md-6 offset-md-4">
<button type="submit" class="btn btn-primary">
{{ __('Register') }}
</button>
</div>
</form>

RegisterController.php

protected function validator(array $data)
{
return Validator::make($data, [
'images' => ['bail','required','mimes:jpeg,jpg,png,gif,svg','max:2048']
]);
}

方法创建/存储

protected function create(array $data)
{ 
$dataim = array();
if($request->hasFile('images'))
{
foreach($request->file('images') as $file) 
{
$namee = encrypt($file->getClientOriginalName()).'.'.$file->extension();
//$name = encrypt($namee).'.'.$file->extension();
$name = "profiles\".$jdate->format('F').$jdate->year."\".$namee;
$file->storeAs("public\profiles\".$jdate->format('F').$jdate->year, $namee); 
//$Annonce->images = "annonces\".$jdate->format('F').$jdate->year."\".time().'.'.$image->extension();  
array_push($dataim,$name);
}
}
$user->images=json_encode($dataim);
$imm =$user->images;
return User::create([
'images'       => $imm
]);
}

由于要验证数组,因此必须以不同的方式构建规则:

return Validator::make($data, [
'images' => ['bail', 'required', 'array', 'min:1'],
'images.*' => ['bail', 'mimes:jpeg,jpg,png,gif,svg', 'max:2048'],
]);

有关详细信息,请参阅有关验证阵列的文档。

最新更新