объект blob в окне iframe - PullRequest
       32

объект blob в окне iframe

0 голосов
/ 17 марта 2019

Я пытаюсь сделать что-то, что кажется довольно простым: я пытаюсь отобразить window.URL.createObjectURL (из файла * .pdf - Blob) в iframe.Я пытаюсь сделать это, привязав атрибут iframe src к выходу функции window.URL.createObjectURL.См. Мой код: Component Html:

<iframe [src]="safeResourceUrl" class="iframe"></iframe>

, связывающий атрибут в компоненте:

safeResourceUrl : SafeResourceUrl;
this.safeResourceUrl = this.sanitizer.bypassSecurityTrustResourceUrl(url);

URL выглядит примерно так (пример):

"blob: http://localhost:4200/84999abe-5a02-48e0-bf61-f693eb5e0f6b"

Это его содержимое (не ошибка, это HTML-теги, сохраненные в формате PDF, но с любым другим содержимым также должно быть все в порядке):

<html>
  <body>
     <label style="color:red;"> test file (HTML) </label>
  </body>
</html>

Путь к файлу созданс помощью BLOB-объекта, созданного из запроса на получение webApi. Запрос настраивается с помощью:

responseType: 'blob' 

, а тип BLOB-объекта -

 type: 'application/octet-stream' 

Чего мне здесь не хватает?загружено с правильным содержимым, но содержимое iframe (в инструментах разработчика содержит пустые теги HTML):

<html><head></head><body></body></html>

Пожалуйста, поддержите

1 Ответ

0 голосов
/ 17 марта 2019

Разобрался после нескольких тестов: Я установил тип BLOB-объекта «application / pdf» вместо «application / octet-stream», используемого для загрузки.

const blob = new Blob([res.body], { type: obj.action == FileAction.save ?  'application/octet-stream' : 'application/pdf' }); // preview in a PDF format
...