Я пытаюсь загрузить «двоичный файл» из моего приложения cordova в imgur.com REST API с помощью AngularJS.
Но я не уверен, как мне следует форматироватьмой запрос и что такое "бинарный файл"Из того, что я понимаю, бинарный файл - это любая вещь, которая не является простым текстом.
Так я получаю данные файла из локальной файловой системы.Возвращает экземпляр BLOB-объекта.Эта часть работает нормально.
var request = {
'url': 'file:///my/path/tmp/cdv_photo_025.png',
'options': {
'responseType': 'blob' // also tried 'arraybuffer', no diff.
}
}
var handler = function(response) {
window.myBlobData = response.data;
// handles the response
}
$http.get(request.url, request.options).then(handler);
Затем, позже, я использую это, чтобы загрузить большой двоичный объект в imgur, но это не работает.Я получаю 400 (плохой запрос).Я предполагаю, что тип содержимого, отключение автоматической кодировки AngularJS делает с transformRequest
, и, конечно, двоичные данные:
var request = {
'url': 'https://api.imgur.com/3/upload',
'options': {
'headers': {
'Authorization': 'Client-ID ***********',
'Content-Type': 'application/octet-stream',
},
'transformRequest': []
},
'data': {
'image': window.myBlobData, // a binary file
'type': 'image/png'
}
}
var handler = function(response) {
// handles the response
}
$http.post(request.url, request.data, request.options).then(handler);