Javascrip服务工作者Blob

时间:2019-10-28 17:24:20

标签: javascript blob service-worker

我正在尝试在服务工作者中下载文件。该文件来自Blob。

我已经知道我可以通过执行此操作下载

var urlCreator = window.URL || window.webkitURL;
var blobURL = urlCreator.createObjectURL(blob, { type: "octet/stream" });

或通过使用FileSaver.js之类的东西

但是今天,我试图“渲染”页面中blob的字节数组,并迫使浏览器下载文档。

为什么? 我尝试这样做是因为,我尝试访问的某些浏览器不支持“ blob:https:......”之类的网址。

所以我尝试找到一种直接在javascript中呈现blob字节数组的方法。

我知道我可以和工作人员一起推动工作,但是不确定那是正确的策略。

我也尝试类似的方法

 var xhr = new XMLHttpRequest();
      xhr.open('GET', obj.URL, false);
      xhr.overrideMimeType("application/octet-stream");
      //xhr.setRequestHeader("Accept", "application/octet-stream");
      xhr.responseType = "arraybuffer";
      xhr.onload = function (e) {

        self.Response(xhr.response);
        //if (this.status == 200) {
        //  var myBlob = this.response;
        //  // myBlob is now the blob that the object URL pointed to.
        //}
      };
      xhr.send();

在我的worker.js中

ps:请避免告诉我,将base64 blob内容发送给您的服务器,并将文件发送回浏览器,我想找到一个纯JavaScript的解决方案。

有可能吗?

0 个答案:

没有答案