在laravel 5中,验证不适用于图像上传

时间:2015-07-27 20:28:09

标签: php validation laravel-5

验证输入时遇到问题。除图像字段外,所有输入字段都通过验证过程。

这是我在html中的文件上传代码:

<div class="control-group">
 <label class="control-label" for="fileInput"> Cover picture: </label>
    <div class="controls">
      {!! Form::file('cover') !!}
    </div>
</div>

以及如何从控制器中的视图中获取数据:

$datas = array(
        'name' => Input::get('name'),
        'color' => Input::get('color'),
        'size' => Input::get('size'),
        'cover' => array('cover' => Input::file('cover'))
    );

这是规则:

$rules = array(
        'name' => 'required',
        'color' => 'required',
        'size' => 'required',
        'cover' => 'required|mimes:jpeg,jpg,png|max:10000'
    );

验证外墙的制作方法:

$validator = Validator::make($datas, $rules);

正如我前面提到的,所有验证规则都是为输入传递的,但对于图像,它给出了一个错误:

  

封面必须是以下类型的文件:jpeg,jpg,png。

现在,我该如何解决?

1 个答案:

答案 0 :(得分:-1)

我认为你应该稍微改变一下......

如果你只是像这样创建你的函数..

// The Illumniate/Http/Request version of Request in laravel
public function yourFunction(Request $request){
    ....
    $rules = ...;
    $validator = Validator::make($request->all(), $rules);
}

Validator的预期格式会自动处理,因为它会返回它。当它贯穿时,你可以处理你已经拥有的一切。

因为这被接受了。使用上面的代码实际修复它的方法是删除多维数组,只需使用Input::file('cover'),因为它自己返回一个数组。