我需要允许用户下载我从REST api获得的字节数组。
后端api返回类似这样的内容:
GET /api/files/123
{
filename: 'myfile.pdf',
file: [base64]
}
在我的HTML上我有这样的东西:
<div ng-click="click()">Download</div>
在我控制器的某处,我有:
$scope.click: function (){
$http.get('/api/files/123',{headers:{x-security:'some_sec_token'}})
.then(
function (response){
// do something to return the array of bytes
},
function (error){
console.log(error);
}
);
}
我一直坚持如何使用api返回的文件名返回带有Content-Disposition标头的字节数组。
答案 0 :(得分:2)
如果要使用字节数组作为内容创建文件,则可以使用此库:
https://github.com/eligrey/FileSaver.js/blob/master/FileSaver.js
在角度项目中导入该库,然后尝试:
var blob = new Blob(<arrayOfBytes>, {type: <yourFileType>});
saveAs(blob, [nameToSave]);
yourFileType 应该类似&#34; image / jpg&#34;或类似的,取决于您的文件类型
nameTosave 也应该包含文件类型。例如:&#34; myFile.pdf&#34;
希望它有所帮助。
干杯