2016-06-28 121 views
0

我创建一个视频上传系统,当我提交视频它告诉我:Laravel 5.2 - TokenMismatchException在VerifyCsrfToken.php线67:

TokenMismatchException在VerifyCsrfToken.php线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()和仍然出现错误。可能是什么问题?

+0

你有没有重新启动进行更改到你的php.ini后您的Web服务器? – aynber

+1

什么是你的'post_max_size'? – aynber

+0

是8M,我已经将其更改为100M,并且工作正常。发布它作为答案:D谢谢。 –

回答

1

post_max_size也有待提高添加这个,因为它扔POST Content-Length错误。

+0

这是绝对的解决方案,因为它是8M,我已经将其与upload_max_filesize一起更改为100M。谢谢 –

0

变化{{ csrf_field() }}{!! csrf_field() !!}

默认情况下,Laravel将难逃注入到模板中的任何数据。通过{!! !!}标签周边调用csrf_field,你告诉Laravel 逃脱由csrf_field()函数生成的HTML标记。

<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>

+0

嗨,我仍然得到相同的错误。 –

+0

请在浏览器输出中查看查看源{!! csrf_field()!}应类似于

+0

是在两种方式一样! –

-1

这可能会帮助你

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

在窗体

+1

您是否看到过这种形式? '{{csrf_field()}}'它做同样的事情 –