Javascrip сервис работник BLOB - PullRequest
0 голосов
/ 28 октября 2019

Я пытаюсь загрузить файл в сервисный работник. Файл пришел из 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.

Возможно ли это?

...