我目前正在以表格形式工作。
我在多文件上传验证方面遇到了一些问题。我在表单中只有一个字段允许多个文件上传。
<input type="file" name="file[]" multiple="multiple">
这是我的验证,
$this->validate($request, [
'file' =>'required',
'file.*' => 'required|mimes:pdf,jpeg,png |max:4096',
],
$messages = [
'mimes' => 'Only PDF, JPEG, PNG are allowed.'
]
);
验证工作正常,但我无法在刀片文件中显示错误消息。
以下是我的尝试。
@if($errors->has('file'))
<span class="help-block">
<strong>{{$errors->first('file')}}</strong>
</span>
@endif
如果没有上传文件,则显示错误。
假设我上传了以下文件,
abc.jpg
abc.html
abc.pdf
当mimes类型验证抛出错误时,我无法显示错误消息。
在这种情况下,错误被抛出为$error->first(file.1)
,因为验证在索引1处失败
此索引可以是根据上传文件的任何索引,$error->first(file.*)
也不起作用。
当我仅从表单添加无效文件后显示所有错误时,我遇到了这些错误。
Only PDF, JPEG, PNG are allowed.
The type field is required.
The number field is required.
The expiry date field is required.
任何人都有这个想法。任何帮助表示赞赏。
谢谢,
答案 0 :(得分:1)
您可以使用检查图像。
$errors->has('file.*')
答案 1 :(得分:1)
尝试这样验证
'file.*.mimes' => 'Only PDF, JPEG, PNG are allowed.',
答案 2 :(得分:0)
这不是好方法,但对我来说这很好。
我有验证规则
'file' =>'required',
'file.*' => 'required|mimes:pdf,jpeg,png |max:4096',
并且,错误消息
'file.*' => 'Only PDF, JPEG, PNG are allowed.'
由于我只有一个文件上传字段,我刚刚在所有消息列表中检查了此错误消息,然后显示如下。
<input type="file" name="file[]" multiple="multiple">
@foreach($errors->all() as $error)
@if($error=="Only PDF, JPEG, PNG are allowed.")
<span class="help-block"><strong>{{$error}}</strong></span>
@endif
@endforeach
感谢所有人,