【问题标题】:File is corrupted while downloading using angular $http [duplicate]使用 angular $http 下载时文件损坏 [重复]
【发布时间】:2016-08-13 20:19:01
【问题描述】:

我正在使用 angular $http 从服务器下载文件。文件类型可以不同。 我应该设置请求标头以进行身份​​验证。 下载完成后,文件已损坏! 这是我在客户端保存文件的代码:

getFile: function(file) {
    $http({
        method: 'GET',
        url: 'download' + "/" + file.name,
        headers: {
            "X-AUTH-TOKEN": "my-token",
            Accept: "*/*",
        }
    }).success(function(data) {
        var fileBlob = new Blob([data], {
            type: '*/*;charset=utf-8'
        });
        saveAs(fileBlob, file.name);
    }).error(function(err) {
        console.log('err', err);
    });
}

【问题讨论】:

  • 您损坏的文件是二进制文件还是文本文件?
  • *.txt 文件正常。但 *.pdf、*.docx 等已损坏
  • 将二进制文件保存为文本文件会导致大量字符被解释,从而损坏二进制文件。我已经删除了我的答案,因为它没有削减它,但这可能就是原因。在这里进一步挖掘:stackoverflow.com/questions/23451726/…

标签: javascript angularjs


【解决方案1】:

我终于通过将此配置添加到 ajax 请求来解决它:

    dataType : "binary",
    processData : false,
    responseType : 'arraybuffer'

并将 blob 类型更改为

“应用程序/八位字节流”

【讨论】:

猜你喜欢
  • 1970-01-01
  • 2020-03-15
  • 2016-08-11
  • 2019-06-08
  • 1970-01-01
  • 2015-07-14
  • 2016-12-12
  • 1970-01-01
  • 2014-02-05
相关资源
最近更新 更多