Javascript Laravel 500错误、Base64图像、Ajax和数组';s
我正在上传,或者更好地说,尝试用Ajax将图像上传到我的Laravel网站。我将图像转换为Base64并将其上载到服务器。在某种程度上,它是有效的 我的问题是,我得到一个500错误。 它是来自Iframe中服务器的响应 问题是,我并不是一直都犯这个错误。 只有当我试图对回应做些什么的时候,我才会得到它 这是我处理上传的方法。 当我像这样运行它时,一切正常,我不会得到错误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
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索引好吧,那很尴尬。。。。。当然我应该用这个。现在可以了。谢谢可能需要睡一会儿。。。。已经很晚了。