我编写了一个代码,允许我显示一次由表单选择的图像,然后使用api自动加载到imgur上。
仅用于显示图像的功能,当我发送上传请求时,它返回错误400.
加载图片的代码:
if (file.files && file.files[0]) {
console.log('caricamento immagine: '+file.value);
$.ajax({
url: 'https://api.imgur.com/3/image',
headers: {
'Authorization': 'Client-ID (my id)'
},
type: 'POST',
data: {
'image': file.value
},
success: function(data) {
var uri = data['upload']['links']['imgur_page'];
console.log(uri);
},
error: function(e) {
console.log(e);
}
});
return false;
}
答案 0 :(得分:0)
可能是因为上传图片的网址与请求端点的网址不同。尝试将AJAX请求中的URL更改为:
url: 'https://api.imgur.com/3/upload'
还要确保image
属性的数据是Base64,Binary或您尝试上传的图片的网址。否则你会收到错误。另外,您应该告诉Imgur您正在使用哪种类型,例如,如果Base64对图像进行编码,您的数据对象应如下所示:
data: {
image: 'ZmlsZW5hbWU=', // example base64 string
type: 'base64'
}
不需要定义类型,但它缩短了上传所需的时间,因为它不必解析字符串。
可以找到API的规范here。如果你想走那条路,你也可以查看base64_encode()
的这个PHP函数。