Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/268.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript Laravel 500错误、Base64图像、Ajax和数组';s_Javascript_Php_Jquery_Ajax_Laravel - Fatal编程技术网

Javascript Laravel 500错误、Base64图像、Ajax和数组';s

Javascript Laravel 500错误、Base64图像、Ajax和数组';s,javascript,php,jquery,ajax,laravel,Javascript,Php,Jquery,Ajax,Laravel,我正在上传,或者更好地说,尝试用Ajax将图像上传到我的Laravel网站。我将图像转换为Base64并将其上载到服务器。在某种程度上,它是有效的 我的问题是,我得到一个500错误。 它是来自Iframe中服务器的响应 问题是,我并不是一直都犯这个错误。 只有当我试图对回应做些什么的时候,我才会得到它 这是我处理上传的方法。 当我像这样运行它时,一切正常,我不会得到错误 public function upload(Request $request) { return var_dum

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

我的问题是,我得到一个500错误。

它是来自Iframe中服务器的响应

问题是,我并不是一直都犯这个错误。 只有当我试图对回应做些什么的时候,我才会得到它

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

public function upload(Request $request)
{

    return var_dump($request->all());
}
但它是一个数组。因此,要处理它,我必须指定键。唯一的问题是,一旦我这样做,我得到了500错误

我想将base64字符串转换回图像,因此我想执行以下操作:

file_put_contents('foo.png', base64_decode($request->all()[0]));
但这造成了错误。
$request->all()
末尾的
[0]

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

我就是不明白

这是我的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')
            }
        });
$.ajax({
url:“/admin/upload”,
类型:“POST”,
数据:队列,
processData:false,
错误:函数(xhr、状态、错误){
设err=xhr.responseText;
//控制台日志(err);
$(“#上传内部面板”)。追加(“”)
},
成功:功能(xhr){
console.log(xhr);
},
标题:{
'X-CSRF-TOKEN':$('meta[name=“CSRF-TOKEN”]).attr('content'))
}
});

在评论中给出了答案,但还是将此作为答案发布:


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

为什么要尝试使用
[0]
,而不是使用类似
$request->yourBase64Data
的东西,无论该POST值是什么。post对象没有被numberRoh索引好吧,那很尴尬。。。。。当然我应该用这个。现在可以了。谢谢可能需要睡一会儿。。。。已经很晚了。