【问题标题】:Using Mimes for Validating Laravel File Post - Word File使用 Mimes 验证 Laravel 文件发布 - Word 文件
【发布时间】:2017-03-31 00:46:06
【问题描述】:

我有一个我发布文件的表格。我正在尝试使用验证来仅接受 word 文档。我尝试使用 mime 类型,但似乎不起作用,我无法发现我的错误。

<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 &gt; mimes.php 但我在 Laravel 5.3 上没有它

【问题讨论】:

    标签: php laravel validation laravel-5 forms http-post


    【解决方案1】:

    实际上,您的验证码并没有什么问题。问题是您的表单没有正确提交文件。

    将正确的enctype 添加到您的表单中,如下所示:

    <form action="" method="post" enctype="multipart/form-data">
    

    还要确保使用正确的语法进行验证(但我想你知道这部分)。使用以下两者之一:

    'myFile' => 'required|mimes:doc,docx'
    'myFile' => 'required|mimetypes:application/msword'
    

    【讨论】:

    • 哦.. 一开始没注意到。非常感谢!
    【解决方案2】:

    试试这个:

    'myFile': 'required|mimes:doc,docx'
    

    【讨论】:

    • 这正是我在上次 sn-p 中尝试和编写的内容。它不起作用。我仍然收到“myFile 必须是 doc 类型的文件,docx。”
    • 我有其他验证与我的语法一起使用。您的语法将不起作用,因为冒号在字典中不是正确的方式。我需要改用=&gt;
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-11-29
    • 2021-11-11
    • 2016-01-24
    • 2016-08-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多