Laravel 5:上传多个文件和其他输入

时间:2016-07-24 23:01:52

标签: php html laravel

我在使用Laravel 5的表单时遇到问题。当我将enctype属性指定为' multipart / form-data'我收到令牌不匹配错误。如果删除它,表单始终无法通过我的控制器中指定的验证。

HTML

<form class="lajax" action="{{ action('AlbumController@store') }}" method="POST">
                    <div class="form-group">
                        <label>Album Name</label>
                        <input type="text" name="name" class="form-control">                                                
                    </div>

                    <div class="form-group">
                        <label for="coverFile">Album Cover Image</label>
                        <input  name="cover" type="file" id="coverFile">
                        <p class="help-block">Example block-level help text here.</p>
                    </div>

                    <div class="form-group">
                        <label for="albumFiles">Album Images</label>
                        <input type="file" name="photos[]" multiple>
                    </div>

                    <button type="submit" class="btn btn-primary">Create Album</button>

                    {{ csrf_field() }}
                </form>

控制器

public function store(Request $request)
    {

        //request input verification rules
        $rules=[
            'name'=>'required',
            'cover'=>'required|image',
            'photos'=>'required|array',
            'photos.*'=>'image'
        ];

        //perform validation
        $this->validate($request,$rules);

       // blah blah
    }

具体来说,图像似乎失败了。

错误报告:封面不是图像,照片0不是图像,照片1不是图像.....等等。

请帮忙

2 个答案:

答案 0 :(得分:0)

变化:

<form class="lajax" action="{{ action('AlbumController@store') }}" method="POST">

要:

<form method="POST" action="{{ action('AlbumController@store') }}" accept-charset="UTF-8" enctype="multipart/form-data">

在您的控制器中,您可以检查输入:

$request->hasFile('file_input_name');

同时检查Laravel Collective以创建表单:https://laravelcollective.com/

答案 1 :(得分:0)

我发现了错误!它在我的php.ini文件中。我将03的post_max_size更改为1000M。它奏效了。