2015-11-16 34 views
0

我有一個表單,我試圖用圖像文件提交。Laravel AJAX表單不發送圖像數據

問題是沒有圖像文件正在發送。

我的AJAX調用:

$(document).on('submit', ".hidden-image-upload", function(e){ 
    e.preventDefault(); 
    $.ajax({ 
     url:'/project/uploadImage', 
     data: new FormData($(".hidden-image-upload")[0]), 
     headers: { 
      'X-CSRF-Token': $('form.hidden-image-upload [name="_token"]').val() 
     }, 
     dataType:'json', 
     async:false, 
     type:'post', 
     processData: false, 
     contentType: false, 
     success:function(response){ 
      console.log(response); 
     }, 
    }); 
}); 

然後我的形式:

{!! Form::open(['class' => 'hidden-image-upload', 'files' => true]) !!} 
    {!! Form::file('file', ['class' => 'cover-image-upload-button']) !!} 
{!! Form::close() !!} 

在我的控制,我只是回:

return $request->all(); 

而且我越來越:

_token: "lFHIf7wiYI3IWqrbcpKxgJEPtXCIVpLm5nVhJ1Ks", file: {}} 
_token: "lFHIf7wiYI3IWqrbcpKxgJEPtXCIVpLm5nVhJ1Ks" 
file: {} 

有什麼幫助嗎?

+0

結帳這篇文章,也許它可以幫助:http://stackoverflow.com/questions/10899384/uploading-both-data-and-files-in-one-form-using-ajax –

回答

0

如果您返回數據,它將顯示爲您正在獲取。相反,如果你使用的print_r打印提交的數據,你會得到這樣的事情:

Array ([_token] => IFQtwfwAKbPs8NJ9Sao4X19Z5bzsPzT0SxL0GaUt [file] => Symfony\Component\HttpFoundation\File\UploadedFile Object ([test:Symfony\Component\HttpFoundation\File\UploadedFile:private] => [originalName:Symfony\Component\HttpFoundation\File\UploadedFile:private] => File.csv [mimeType:Symfony\Component\HttpFoundation\File\UploadedFile:private] => text/csv [size:Symfony\Component\HttpFoundation\File\UploadedFile:private] => 169 [error:Symfony\Component\HttpFoundation\File\UploadedFile:private] => 0 [pathName:SplFileInfo:private] => /tmp/phpTT84Kb [fileName:SplFileInfo:private] => phpTT84Kb)) 

要保存上傳的文件在其他地方,你應該這樣訪問:

$request->file('file') 

More here