2016-04-18 43 views
0

formdataを使用してイメージファイルを含むデータセットを送信しようとしましたが、laravelコントローラでそのデータにアクセスする場合は空白の配列が表示されます。laravelコントローラでajax postメソッドによって送信されたformdata値を取得する方法

var fd = new FormData(); 
    fd.append("photo",files[0]); 
    fd.append("user_id",localStorage.getItem('userId')); 
    fd.append("doctype","dl_image");  
    console.log(fd); 



    //ajax code 
    $http.post('uploadfile', fd, {  
      withCredentials: true,  
      headers: { 'X-CSRF-TOKEN' : $('meta[name="csrf-token"]').attr('content') }  
    }).success(function(data, status) {   

       console.log(data); 


    }); 

PHPコード - -

$data = Request::all(); 
    $photo = Request::file('photo'); 
    $userid = Request::get('user_id'); 
    $doctype = Request::get('doctype'); 


    $postData = array(
     'photo' => $photo, 
     'user_id' => $userid, 
     'doctype' => $doctype 
    ); 
    var_dump($data); 
    die(); 

データは、ブラウザのコンソールにダンプされている場合、それは助けが必要

array(0) { 
} 

を示しここ

は私のAjaxコードです。

答えて

0

jqueryのメソッドをシリアライズしてみてください。

function myForm(form){ 
    var formData = $(form).serialize(); 
    att=form.attr("action") ; 
    $.post(att, formData).done(function(data){ 
     alert(data); 
    }); 
    return true; 
} 
+0

私は、ファイルを受け入れるためにどのようにangularJs – sajalsuraj

1

AngularJSデフォルトでapplication/jsonタイプ& JSON体でPOSTリクエストを送信します。
だから私は、あなたが使用する必要があると思います:ajaxコードで

headers: { 'Content-Type' : 'application/x-www-form-urlencoded'}, 
data: $.param(data) 


あなたは$name = Input::get('name');代わりの$userid = Request::get('user_id');

+0

を使用しています。.. ?? @Ajay – sajalsuraj

+0

ファイルを受理できますか?私はあなたを取得していない –

0

ファイルやデータを投稿するFormData APIを使用している場合、Content-Type headerundefinedに設定することが重要であるようなものを使用する必要があるかもしれません。

試してみてください。headers: { 'Content-Type': undefined }

関連する問題