使用AngularJS下载文件

时间:2015-05-21 19:58:05

标签: angularjs download

我需要允许用户下载我从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标头的字节数组。

1 个答案:

答案 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;

希望它有所帮助。

干杯