我有一张已发布的表格。我正在尝试使用验证来仅接受 Word 文档。我尝试使用哑剧类型,但似乎不起作用,而且我无法发现我的错误。
<form action="" method="post">
<div class="form-group{{ $errors->has('myFile') ? ' has-error' : '' }}">
<div class="col-xs-12">
<div class="form-material">
<input class="form-control" type="file" id="myFile" name="myFile">
<label for="myFile">MyFile</label>
@if ($errors->has('myFile'))
<div {{ $errors->first('myFile') }}</div>
@endif
</div>
</div>
</div>
</form>
此帖子成功发布,我在控制器中收到了它。
在我的控制器中,我尝试验证它,但它总是返回错误,即使文件采用“.doc”格式。
public function myController(Request $request) {
$validator = MyValidations::myFormValidator($request->all());
if ($validator->fails()) {
$this->throwValidationException(
$request, $validator
);
}
...
}
和验证器:
public static function myFormValidator($data) {
return Validator::make($data, [
'myFile' => 'required|mimes:application/msword'
// I also tried
// 'myFile' => 'required|mimes:doc,docx'
]);
}
编辑:我看过一些关于SO的帖子,关于有一个文件config > mimes.php
但我在 Laravel 5.3 上没有它
实际上,您的验证代码并没有什么问题。问题是您的表单未正确提交文件。
添加适当的enctype
像这样的形式:
<form action="" method="post" enctype="multipart/form-data">
还要确保验证语法正确(但我认为您知道这一部分)。使用这两个之一:
'myFile' => 'required|mimes:doc,docx'
'myFile' => 'required|mimetypes:application/msword'
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)