gpt4 book ai didi

javascript - 如何通过 AngularJs $http 将二进制文件放入 API

转载 作者:塔克拉玛干 更新时间:2023-11-02 21:40:38 25 4
gpt4 key购买 nike

我想将一个二进制文件(图像)上传到一个接受 application/octet-stream 的 api。不幸的是, Angular 似乎想要转换我的请求,这显然不起作用并导致TypeError: key.charAt 不是一个函数

我的请求是这样的:

var f = document.getElementById('file_picker').files[0],
r = new FileReader();
r.onloadend = function(e){
var fileData = e.target.result;
$http({
url: '.../upload/' + id,
method: 'PUT',
headers: {'Authorization': 'Bearer asdf',
'Content-Type': 'application/octet-stream'},
data: new Uint8Array(fileData),
transformRequest: []
})
})
r.readAsArrayBuffer(f);

这是我通过 curl 发出的有效请求:

curl -i -X PUT -H "Authorization: Bearer asdf" -H "Content-Type: application/octet-stream" --data-binary @jpg.jpg https://.../upload/123

有什么想法吗?谢谢。

最佳答案

试试这个:

            var fd = new FormData();
fd.append("file", fileObj);

$http({
method: "POST",
params: { 'forcecache': new Date().getTime() },
url: <yoururl>,
headers: {
"Content-Type": undefined
},
transformRequest: angular.identity,
data: fd
});

这是我们项目之一的工作示例。参见 http://www.uncorkedstudios.com/blog/multipartformdata-file-upload-with-angularjs/了解更多详情

关于javascript - 如何通过 AngularJs $http 将二进制文件放入 API,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41482105/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com