Я пытаюсь загрузить файл в сервисный работник. Файл пришел из BLOB-объекта.
Я уже знаю, что я могу загрузить BLOB-объект, выполнив это
var urlCreator = window.URL || window.webkitURL;
var blobURL = urlCreator.createObjectURL(blob, { type: "octet/stream" });
или используя что-то вроде FileSaver.js
Но сегодня, я пытаюсь «визуализировать» массив байтов большого двоичного объекта на странице и заставить браузер загрузить документ.
Почему? Я пытаюсь это сделать, потому что некоторые браузеры, к которым я пытаюсь связаться, не поддерживают URL-адрес, такой как «blob: https: ......»
Поэтому я пытаюсь найти способ визуализации байтовых массивов. моего блоба прямо в javascript.
Я знаю, что могу выдвигать заголовки с работником, но не уверен, что это правильная стратегия.
Я тоже пытаюсь что-то подобное
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: Пожалуйста, не говорите мне, отправьте вам содержимое BLOB-объекта base64 на свой сервер и отправьте файл обратно в браузер, я хотел бы найти чистое решение для JavaScript.
Возможно ли это?