モバイル デバイスから Microsoft Computer Vision API に画像をアップロードしようとしていますが、「入力データは有効な画像ではありません」という無効なファイル形式に対する 400 Bad Request を常に受信しています。ドキュメントには、データを 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");
});
});
私は次のことを試しました:
- [base64画像]
- {base64image}
- "data:image/jpeg;base64," + base64image
- "image/jpeg;base64," + base64image
もっと。
これらを Computer Vision API コンソールでテストしました。base64 でエンコードされたバイナリが許容される形式ではないためですか? または、完全に間違った形式で送信していますか?
注: この操作は、URL を application/json として送信するときに機能します。