Ajax 拉维尔';s文件验证使文件符合要求
我有一个表单,其中有一些输入,还有一个Ajax 拉维尔';s文件验证使文件符合要求,ajax,laravel,performance,laravel-validation,laravel-5.6,Ajax,Laravel,Performance,Laravel Validation,Laravel 5.6,我有一个表单,其中有一些输入,还有一个文件输入一切正常,但有一个奇怪的问题 以下是我的验证代码: 问题是我没有为文件设置必需的,但我不知道为什么在提交表单时会显示: 文件必须是以下类型的文件:jpeg、png、doc、docs、pdf 实际上,我想文件是可选的 我有时试过: 'file' => 'sometimes|max:2000|mimes:jpeg,png,doc,docs,pdf', 但它不起作用。 谢谢你的建议 更新: 我的Ajax请求: 和我的文件输入: 发送文件 浏览
文件输入
一切正常,但有一个奇怪的问题
以下是我的验证代码:
问题是我没有为文件设置必需的,但我不知道为什么在提交表单时会显示:
文件必须是以下类型的文件:jpeg、png、doc、docs、pdf
实际上,我想文件
是可选的
我有时试过:
'file' => 'sometimes|max:2000|mimes:jpeg,png,doc,docs,pdf',
但它不起作用。
谢谢你的建议
更新:
我的Ajax请求:
和我的文件输入:
发送文件
浏览
没有选择任何文件
您可以按如下方式执行
$validator = \Validator::make($request->all(), [
'name' => 'required|max:25|min:3',
'email' => 'required|email|max:35|min:5',
'phone' => 'required|max:15|min:7',
]);
if($request->file){
$validator = \Validator::make($request->all(), [
'file' => 'max:2000|mimes:jpeg,png,doc,docs,pdf',
]);
}
使用nullable
规则
文件:
这给了你:
'file' => 'nullable|max:2000|mimes:jpeg,png,doc,docs,pdf',
嗯。。你的验证是正确的。。您是否检查了请求中的文件是否为空?尝试用nullable
替换有时
,我忘了说我使用了Ajax,当我从Ajax的数据中删除文件
时,问题就解决了!/谢谢,我尝试了nullable
,但没有成功。@zerone我更新了我的问题。
<div class="form-group">
<label for="file">send file</label>
<br>
<label id="browse-label" for="file"><i class="fa fa-upload" aria-hidden="true"></i>browse
<input type="file" id="file">
</label>
<span id="filename">no file chosen</span>
</div>
$validator = \Validator::make($request->all(), [
'name' => 'required|max:25|min:3',
'email' => 'required|email|max:35|min:5',
'phone' => 'required|max:15|min:7',
]);
if($request->file){
$validator = \Validator::make($request->all(), [
'file' => 'max:2000|mimes:jpeg,png,doc,docs,pdf',
]);
}
'file' => 'nullable|max:2000|mimes:jpeg,png,doc,docs,pdf',