Laravel 5.2 - VerifyCsrfToken.php 第 67 行中的 TokenMismatchException:

Laravel 5.2 - TokenMismatchException in VerifyCsrfToken.php line 67:

我正在创建一个视频上传系统,当我提交视频时,它向我显示:

TokenMismatchException in VerifyCsrfToken.php line 67

我有这样的看法:

<link href="https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0-alpha.2/css/bootstrap.min.css" rel="stylesheet"/>
<form method="POST" action="{{ url('video/upload') }}" enctype="multipart/form-data" class="form-horizontal">
            {{ csrf_field() }}
            <fieldset class="form-group">
                <label for="title">Title</label>
                <input type="text" id="title" name="title" class="form-control">
            </fieldset>
            <fieldset class="form-group">
                <label for="video">Video</label>
                <input type="file" id="video" name="video" class="form-control">
            </fieldset>
            <fieldset class="form-group text-lg-right">
                <button class="btn btn-success" type="submit">Upload</button>
            </fieldset>
        </form>

这在我的控制器中:

namespace App\Http\Controllers;

use Illuminate\Http\Request;
use App\Video;

use App\Http\Requests;

class VideoController extends Controller
{
    public function upload()
    {
        return view('video.upload');
    }

    public function uploadPost(Request $request)
    {
        $this->validate($request, [
            'title' => 'required|unique:videos|max:100',
            'tags' => 'required',
            'video' => 'required'
        ]);

        $mime = $request->file('video')->getMimeType();

        dd($mime);
    }
}

而我的 php.ini 是:

upload_max_filesize = 100M

因此,我有 php.ini、csrf_field() 并且仍然出现错误。可能是什么问题?

{{ csrf_field() }} 更改为 {!! csrf_field() !!}

默认情况下,Laravel 将转义任何注入到模板中的数据。通过在 {!! !!} 标记中包围对 csrf_field 的调用,您告诉 Laravel not 转义由 csrf_field()函数。

<link href="https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0-alpha.2/css/bootstrap.min.css" rel="stylesheet"/>
<form method="POST" action="{{ url('video/upload') }}" enctype="multipart/form-data" class="form-horizontal">
            {!! csrf_field() !!}
            <fieldset class="form-group">
                <label for="title">Title</label>
                <input type="text" id="title" name="title" class="form-control">
            </fieldset>
            <fieldset class="form-group">
                <label for="video">Video</label>
                <input type="file" id="video" name="video" class="form-control">
            </fieldset>
            <fieldset class="form-group text-lg-right">
                <button class="btn btn-success" type="submit">Upload</button>
            </fieldset>
        </form>

这可能对您有所帮助

<input name="_token" value="{{csrf_token()}}" type="hidden">

将此添加到您的表单中

post_max_size 也需要引发,因为它会引发 POST Content-Length 错误。