[英]Laravel multiple file upload validation
我目前正在以一种形式工作。
我对多文件上传验证有一些问题。 我的表单中只有一个字段允许上传多个文件。
<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.
任何人都对此有想法。 任何帮助表示赞赏。
谢谢,
您可以使用图像检查。
$errors->has('file.*')
像这样尝试验证
'file.*.mimes' => 'Only PDF, JPEG, PNG are allowed.',
这不是好方法,但对我而言很合适。
我有验证规则
'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
谢谢大家
如果有人仍在为多个文件上传问题而苦苦挣扎,这里是正确的方法。
$validated = $request->validate([
'files.*' => 'mimes:pdf,jpeg,png|max:4096',
'files' => 'required',
],
$messages = [
"files.required" => "You must upload atleast one file",
"files.*.mimes" => "This file type is not allowed",
"files.*.max" => "Max file size is 4Mb",
]);
<form action="{{ url('/multifile') }}" method="POST" enctype="multipart/form- data"> @csrf <div class="form-group"> <label>Select files</label> <input type="file" class="form-control-file @error('files') 'is-invalid' @enderror" name="files[]" multiple> @error('files') <span class="invalid-feedback d-block" role="alert"> <strong>{{ $message }}</strong> </span> @enderror @error('files.*') <span class="invalid-feedback d-block" role="alert"> <strong>{{ $message }}</strong> </span> @enderror </div> <button class="btn btn-secondary" type="submit">Submit</button> </form>
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.