我正在尝试在服务工作者中下载文件。该文件来自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的解决方案。
有可能吗?