FileSaver.js正在保存损坏的图像

时间:2017-11-08 09:03:29

标签: http blob filesaver.js

这工作正常,突然停止工作。我不确定究竟发生了什么变化。

我需要通过网址下载多张图片。

我正在使用以下代码:
https://plnkr.co/edit/nsxgwmNYUAVBRaXgDYys?p=preview

$http({
  method:"GET",
  url:"imageurl"
}).then(function(response){

  saveAs(new Blob([response.data]), "image.jpg");

},function(err){

});

文件大小不同,不是0字节。

2 个答案:

答案 0 :(得分:1)

对于其他来这里的人,请检查this solution

要做的是向请求中添加responseType: "blob"

$http({
  method:"GET",
  url:"imageurl",
  responseType: "blob"
})
.then(...)

HereresponseType有效值的文档,其中说默认值是"",因此响应被视为文本:

  

“” :将空的responseType字符串与默认类型(因此,作为DOMString)视为“文本”相同。

     

“ blob:” :响应是包含二进制数据的Blob对象。

答案 1 :(得分:0)

以下代码对我有用:

axios.get(`http://localhost:61078/api/values`, {
  responseType: 'blob',
}).then(response => {
  if (response) {
    var FileSaver = require('file-saver');
    FileSaver.saveAs(new Blob([response.data]), "image.png");
  }
});