2016-08-10 6 views
0

3種類のファイルをアップロードするためのフォームを実装しました。ここでファイルをアップロードするときにトークンのミスマッチエラーが発生する

は一つだ:ここでは

<form method="POST" action="{{ route('register_update' , Auth::user()->id) }}" enctype="multipart/form-data"> 
    <input type="hidden" name="_token" value="{{{ csrf_token() }}}" /> 
    <div class="file-container"> 
     <input type="file" name="carte-id" id="id-file" class="input-file"> 
     <div class="fake-input-file"> 
     <div class="cross-container" id="cross-cont1"> 
      <i class="icon-plus-symbol" id="cross1"></i> 
     </div> 
     <div class="file-label" id="id-label"> 
      <label>Carte d'identité</label> 
     </div> 
     </div> 
    </div> 

は私のコントローラ内の関数である:

public function rules() 
    { 
     return [ 
      'carte-id' => 'mimes:jpg,png,pdf,gif,jpeg,tiff,doc,docx,odt|max:10000', 
      'avs' => 'mimes:jpg,png,pdf,gif,jpeg,tiff,doc,docx,odt|max:10000', 
      'permit' => 'mimes:jpg,png,pdf,gif,jpeg,tiff,doc,docx,odt|max:10000', 
     ]; 
    } 

しかし、私がアップロードしようとするたび:

public function registerUpdate(CardAvsRequest $request){ 
     $id = Auth::user()->id; 
     $first_name = User::find($id)->student->first_name; 
     $last_name = User::find($id)->student->last_name; 
     $name = $first_name . " " . $last_name; 
     $message = ""; 
     if ($request->hasFile('carte-id')) 
     { 
      $image1 = $request->file('carte-id'); 
      if($image1->isValid()) 
      { 
       if ($request->hasFile('avs')) 
       { 
        $image2 = $request->file('avs'); 

        if($image2->isValid()) 
        { 
         if ($request->hasFile('permit')) 
         { 
          $image3 = $request->file('permit'); 

          if($image3->isValid()) 
          { 
           $path = config('card.path')."/$id"; 
           $name = "carte-id.".$image1->getClientOriginalExtension(); 
           $image1->move($path, $name); 
           $path = config('card.path')."/$id"; 
           $name = "avs.".$image2->getClientOriginalExtension(); 
           $image2->move($path, $name); 
           $path = config('card.path')."/$id"; 
           $name = "permit.".$image3->getClientOriginalExtension(); 
           $image3->move($path, $name); 
           $message = "Super ! Vous avez importé tous les fichiers nécessaires."; 
           //ici on dit dans la DB que l'utilisateur à uploadé tous les fichiers 
          } 
         } 
        } 
       } 
      } 

     } 
     return redirect()->route('account', $id)->with('message', $message); 
    } 

そして、ここではCardAvsRequestルールはあります検証エラーを生成するはずのファイル(ビデオファイルや実行可能ファイルなど)。このラror:

TokenMismatchException in VerifyCsrfToken.php line 67 

私のエラーには、ラーヴェルを表示しないようにしてください。

アイデア?

+0

これらのファイルのサイズはどれくらいですか?見つかった[何かsimulair](http://laravel.io/forum/02-20-2014-l40-csrf-tokenmismatchexception-when-uploading-large-files) –

答えて

1

トークンラインが

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

2つだけ、中括弧でなければならない3つが

+0

何も変更されません...それは3巻き中括弧 –

+0

それでもエラーが表示されますか? –

+0

はい、あります! @Huzaib –

0

あなたはこれを置き換えることができます。

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

で:

{{ csrf_field() }} 

これが生成されます。あなたのためのすべてのHTML 。例えば、これを生成します。

<input type="hidden" name="_token" value="vVGUrt0Grroh7CpmI8blFH6pLQnWQzi6WBWqpZzG"> 
+0

同じエラーが発生しました:/ –

0

あなたlaravelのインストールパスを確認してくださいが.One session.php設定ファイルにセットと同じであった多くのソリューションは、それを行うための正しい方法ではありませんfolder.Butだけapp\http下kernel.phpからライン'App\Http\Middleware\VerifyCsrfToken'コメントです。

関連する問題