【问题标题】:JavaScript: How to create a Blob from binary string? [duplicate]JavaScript:如何从二进制字符串创建 Blob? [复制]
【发布时间】:2016-02-10 17:36:00
【问题描述】:

我想从我的后台下载一个受保护的文件 - 我必须发送授权标头,所以我无法直接链接它。我创建了以下 Ajax 请求来下载它:

Ember.$.ajax({
     url: self.get("file.filepath"),
     type: "GET",
     beforeSend: function(xhr) {
        xhr.setRequestHeader(header, content);
     },
     processData: false,
     success: function (result, a, xhr) {
         var blob = new Blob([result], {type: xhr.getResponseHeader("content-type") || ""});
         saveAs(blob, self.get("file.filename"));
     }
});

处理文本文件时一切正常。但是,当我尝试下载二进制文件(图像)时,我得到了完全的废话(即使是通过控制台打印的二进制字符串对我来说也很好)。所以我认为blob构造存在问题。

我曾尝试使用 Int8Array,但没有帮助。我做错了什么?

【问题讨论】:

标签: javascript jquery ajax


【解决方案1】:

guest271314 的回答中有一个正确答案 - link to solution. 这是我能找到的唯一可行的解​​决方案。

【讨论】:

    【解决方案2】:

    我今天遇到了同样的问题 这是一个角度代码,但也许可以帮助你

    return $http({
        url: host + "api/map/rectangleMap",
        method: 'POST',
        data: angular.toJson(coords),
        responseType: 'blob',
        transformResponse: function(data){
            return new Blob([data], {type: 'image/png'});
        }
    });
    

    【讨论】:

      猜你喜欢
      • 2019-07-28
      • 1970-01-01
      • 2015-03-04
      • 1970-01-01
      • 1970-01-01
      • 2014-06-27
      • 2011-08-08
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多