gpt4 book ai didi

javascript - 从 Angular 资源获取二进制文件

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

我正在尝试使用 Angular 资源来获取二进制文件。我可以用 http.get 做到这一点。

return $http.get("http://localhost:8080/users/my_user/avatar", {responseType:'arraybuffer'});

这将返回文件的字符串。这就是我想要的。

尝试使用资源时:

var resource4 = $resource('/users/:userId/avatar',{},{'get':{method:'GET',cache:false,responseType:'arraybuffer'},'getCached':{method:'GET',cache:true,responseType:'arraybuffer'}, 'postList':{method:'POST', isArray:true}});

我在这里用 get 方法返回一个对象:

getAvatar: function(userId, successCallback, errorCallback) {

var requestData = { userId: convertValueForRest(userId)};
return resource4.get(requestData, successCallback, errorCallback);

}

然后我将其注入(inject)服务并通过:

function getAvatar(user){
return UserDetailsInterface.getAvatar(user);
}

我在这里从 $promise 获取数据:

UserPreferences.getAvatar(userName).$promise
.then(function success(image){

返回的是文件的字符拆分成一个巨大的数组。我真的不知道为什么。

最佳答案

我发现了问题。我需要添加 transformResponse 来处理资源中返回的数组缓冲区。

transformResponse: function(data, headersGetter) { return { data : data }}

这个答案正是我所需要的: https://stackoverflow.com/a/24290186/5838629

关于javascript - 从 Angular 资源获取二进制文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35000245/

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