我正在尝试从移动设备将图像上传到 Microsoft 计算机视觉 API,但我不断收到 400 Bad Request for Invalid File Format “输入数据不是有效图像”。该文档指出,我可以将数据作为 application/octet-stream 以下列形式发送:
[二进制图像数据]
我有基于base64编码的图像数据(“/9j/4AAQSkZJ..........”),我也有图像作为 FILE_URI,但我似乎无法弄清楚发送数据的格式。这是一个示例代码:
$(function() {
$.ajax({
url: "https://api.projectoxford.ai/vision/v1.0/describe",
beforeSend: function (xhrObj) {
// Request headers
xhrObj.setRequestHeader("Content-Type", "application/octet-stream");
xhrObj.setRequestHeader("Ocp-Apim-Subscription-Key", computerVisionKey);
},
type: "POST",
// Request body
data: base64image,
processData: false
})
.done(function(data) {
alert("success");
})
.fail(function(error) {
alert("fail");
});
});
我尝试了以下方法:
- [base64image]
- {base64image}
- "数据:图像/jpeg;base64," + base64image
- "图像/jpeg;base64," + base64image
和更多。
我确实在计算机视觉 API 控制台上测试了这些。是因为 base64 编码的二进制文件不是可接受的格式吗?还是我完全以不正确的格式发送它?
注意:该操作在以 application/json 形式发送 URL 时有效。