【问题标题】:Laravel AJAX form not sending image dataLaravel AJAX 表单不发送图像数据
【发布时间】:2015-11-16 19:46:57
【问题描述】:

我想提交一个带有图像文件的表单。

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

我的 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: {}

有什么帮助吗?

【问题讨论】:

标签: php jquery ajax laravel-5


【解决方案1】:

如果您返回数据,它将按您获取的方式显示。相反,如果你使用 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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-11-12
    • 2018-12-03
    • 2019-11-25
    • 1970-01-01
    • 1970-01-01
    • 2014-03-06
    • 1970-01-01
    相关资源
    最近更新 更多