2016-12-01 5 views
1

私はこの問題がなぜ発生するのか理解できないので、laravel 5とphpの新機能です。ファイルのアップロード結果が空の結果を返す

ajaxを使用してファイル(ビデオまたは画像)をアップロードしようとしていますが、サーバーが空の結果を返します。私がFormDataをコンソール化しても、フォームは空に見えます。

HTML

<form enctype="multipart/form-data" id="upload-file" role="form" method="POST" action="" > 
    <input type="hidden" name="_token" value="{{ csrf_token()}}"> 
    <input type="file" class="form-control" id="catagry-logo" name="videologo"> 
</form> 
<div id="video-submit">Submit</div> 

Javascriptを

$.ajaxSetup({ 
    headers: { 
      'X-CSRF-Token': $('meta[name=_token]').attr('content') 
    } 
}); 

$('#video-submit').on('click', function() { 
    console.log(new FormData($("#upload-file")[0])); 
    $.ajax({ 
      type:'post', 
      url:'uploadvideo', 
      data: new FormData($("#upload_form")[0]), 
      processData: false, 
      contentType: false, 
      success:function(response){ 
       console.log(response); 
      } 
    }); 
}); 

ルート

Route::post('/uploadvideo', '[email protected]'); 

コントローラ

public function videoUpload() { 
    return response()->json(json_encode(Input::all())); 
} 

応答

FormData {} 
[] 
+0

その後、 '要求クラス'パブリック関数videoUpload(リクエスト$リクエスト)を使用します'dd($ request-> input( 'videologo'))'を使用してください。 – MiSAKACHi

+0

あなたのアクションは空ですなぜですか? –

+0

自己へのPOSTを意味します – MiSAKACHi

答えて

0

Requestクラス

をよく理解しようとすると、あなたはJSONレスポンスを返すされている方法が間違っていると思われるので、これを試してみてください。あなたはInputファサードに

を使用しているようです

NOTE

は、あなたのINIファイルでPHPポストポストをアップロードサイズは、アップロードのファイルサイズを扱うことができるか、あなたのphp.iniファイル上の空白POSTリクエスト

で終わるだろうことを確認しますアップロードに合わせて次の指示を設定してください。

  • post_max_size =(サイズはmb、POSTリクエストの合計サイズ)
  • upload_max_filesize =(メガバイトでサイズ、POSTリクエストで単一ファイルのサイズ)

コントローラ

use Illuminate\Http\Requests; 

public function videoUpload(Request $request) { 
    return response()->json(['video' => $request->input('videologo')]); 
} 
+0

ありがとうございます。今私はnullデータを取得して、私のテストファイルのサイズはわずか35KBであり、まだ正しいデータを返すことはできません –

+0

あなたは本当に文字列を投稿し、あなたが投稿した正確な文字列を返すかどうかを確認する必要があります。 – MiSAKACHi

+0

私はすでにstringとintのようなデータをコントローラに渡しました。 –

関連する問題