2017-06-06 17 views
2

をアップロードした後、私はすでに、私は私のプログラムに15メガバイトのビデオをアップロードしようとしているphp.iniの(nginxの)Laravel:TokenMismatchExceptionは、大規模なビデオファイル

upload_max_size = 100MB

post_max_size = 200mb

を設定します。私はこのエラーが最初にあった。

TokenMismatchException in VerifyCsrfToken.php line 68:

したがって、VerifyCSRFTokenミドルウェアの例外で '/ lesson/store'を追加しました。

<div class="form-group"> 
     <label class="control-label col-sm-2" for="video">Video:</label> 
     <div class="col-sm-10">  

      <input class="form-control" type="file" accept="video/*" name="video" id="video" required> 

     </div> 
    </div> 

そして、ここで全体フォームのコードがあります:ここで

は、ビデオ入力を強調ショートだ

<form method="{{$method}}" action="{{url('')}}{{$action}}" class="form-horizontal" runat="server" enctype="multipart/form-data"> 

{{ csrf_field() }} 

    <div class="form-group"> 
     <label class="control-label col-sm-2" for="title">Title:</label> 
     <div class="col-sm-10"> 
      <input type="text" class="form-control" id="title" name="title" placeholder="Enter title" required value="{{ $lesson->title or '' }}"> 
     </div> 
    </div> 
    <div class="form-group"> 
     <label class="control-label col-sm-2" for="description">Description:</label> 
     <div class="col-sm-10"> 
      <textarea class="form-control" id="description" name="description">{{ $lesson->description or '' }}</textarea>   
     </div> 
    </div> 
    <div class="form-group"> 
     <label class="control-label col-sm-2" for="episode">Episode:</label> 
     <div class="col-sm-10"> 
      <input type="number" class="form-control" id="episode" name="episode" placeholder="" required value="{{ $lesson->episode or '' }}"> 
     </div> 
    </div> 
    <div class="form-group"> 
     <label class="control-label col-sm-2" for="video">Video:</label> 
     <div class="col-sm-10"> 

      @if(!empty($lesson->video)) 
      <input class="form-control" type="file" accept="video/*" name="video" id="video"> 
      <div class="video"> 
      <video width="100%" style="height:200px" controls> 
       <source src="{{url('uploads/courses/' . $lesson['course_id']. '/' . $lesson['video'])}}" type="video/mp4">  
      Your browser does not support the video tag. 
      </video> 
      </div> 
      @else 
      <input class="form-control" type="file" accept="video/*" name="video" id="video" required> 
      @endif 
     </div> 
    </div> 

    <div class="form-group"> 
     <label class="col-sm-2"></label> 
     <div class="col-sm-10"> 
      <input type="submit" value="{{$button}}" class="btn btn-success"> 
      <a href="{{ url()->previous() }}" class="btn btn-danger">Cancel</a> 
     </div> 
    </div> 


</form> 

その後、私は再びアップロードしようとした私が言うの検証エラーを受信:

The video field is required

私はこれを私のコードに入れているので、

$this->validate($request, [ 
    'video' => 'required|mimetypes:video/avi,video/mpeg,video/quicktime,video/mp4|max:40000' 
     ]); 

私は本当にこの問題を解決する方法を知りません。

アップデート:私は5メガバイトのビデオをアップロードし、私はこの検証エラーを得た:

The video failed to upload.

+0

としてCSRFトークンを検証動画を追加するときに 'form'の中にあなたのコードを表示してください! –

+0

php.iniに加えて、nginxのアップロードサイズも増やしましたか? (チェックアウトhttps://laracasts.com/discuss/channels/laravel/csrf-mismatch-with-multipartform-data) – apokryfos

+0

私はちょうどまだtokenmismatchエラーを持っていませんでした。 –

答えて

0

は、あなたの中に隠された入力フィールドを追加ため

<input type="text" name="_token" hidden/> 

または

{{ csrf_field() }} 
+0

{{csrf_field()}}はそのことをします。 –

+0

ええ、両方とも同じことをしています –

+0

そして確かに、私はすでに私の形でそれを持っています。 –

関連する問題