Laravel AJAX表单不发送图像数据

时间:2015-11-16 19:46:58

标签: php jquery ajax laravel-5

我正在尝试使用图片文件提交表单。

问题是没有发送图像文件。

我的AJAX电话:

messages.txt

然后是我的表格:

$(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();

任何帮助?

1 个答案:

答案 0 :(得分: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