Laravel 500错误,Base64图像,Ajax和数组

问题描述 投票:1回答:1

我正在上传,或者更好地说,尝试使用Ajax将图像上传到我的Laravel网站。我将图像转换为Base64并将它们上传到服务器。它有效。

我的问题是我得到500错误。 It's the response from the server in an Iframe

这是来自iframe服务器的响应

问题是,我不会一直得到这个错误。当我尝试对响应做些什么时,我才会得到它。

这是我处理上传的方法。当我像这样运行它一切正常,我没有得到错误。

public function upload(Request $request)
{

    return var_dump($request->all());
}

但它是一个阵列。所以要用它做点什么我必须指定键。唯一的问题是,一旦我这样做,我得到500错误。

我想将base64字符串转换回图像,所以我想这样做:

file_put_contents('foo.png', base64_decode($request->all()[0]));

但这会产生错误。在[0]结束时的$request->all()

我无法删除它,因为它需要base64字符串而不是数组。我还想知道如果我只是在var转储中将[0]添加到$request-all()的末尾会发生什么,但我仍然得到错误。

我只是不明白。

这是我的Ajax调用:

    $.ajax({
            url: "/admin/upload",
            type: "POST",
            data: queue,
            processData: false,
            error: function(xhr, status, error) {
                let err = xhr.responseText;
                //console.log(err);
                $('#upload-InnerPanel').append("<iframe width='600' height='500' src='" + err +"'> </iframe>")
            },
            success: function (xhr) {
                console.log(xhr);
            },
            headers: {
                'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content')
            }
        });
javascript php jquery ajax laravel
1个回答
3
投票

在评论中回答,但无论如何都将此作为答案发布:

收到的$ request值未按数字索引,因此您需要使用其名称访问它。而不是$request->all()[0],你需要使用$request->theData,或者在表单中命名的任何值。

© www.soinside.com 2019 - 2024. All rights reserved.