Как установить имя файла для рендеринга base64 с использованием тега объекта?

Ну, я использую следующий код для рендеринга PDF, который возвращается из веб-сервиса в виде строки base64.

<html>
  <object data="data:application/pdf;base64,{!pdfStampingResponse.pdfBase64}" type="application/pdf" width="100%" class="internal">
    <param name="view" value="fitH" />            
  </object>
</html>

Ответы

Ответ 1

Используйте download="yourfilename" в теге привязки.

Атрибут загрузки указывает, что цель будет загружена, когда пользователь нажимает гиперссылку.

PS: этот атрибут используется, только если установлен атрибут href.

Ответ 2

Есть ли способ обойти это, чтобы я мог контролировать имя?

Нет. Вы не можете контролировать имя файла, хранящегося в локальной файловой системе пользователя.

Смотрите здесь: fooobar.com/questions/13744433/...

Ответ 3

пожалуйста, попробуйте это

const FILE_NAME = 'myfile.pdf';
const file_header = ';headers=filename';

fetch('https:your-url/myfile.pdf?dl=0').then(r => r.blob())
.then(blob=>{
  const f = new FileReader();
  f.onload = () => myPdfViewer.src = f.result.replace(';', file_header + encodeURIComponent(FILE_NAME) + ';');
  f.readAsDataURL(blob);
  });

Затем вставьте идентификатор myPdfViewer в iframe. Я надеюсь, что это может помочь.

Ответ 4

Вы можете использовать следующий синтаксис кода

<object data="data/test.pdf" type="application/pdf" width="300" height="200">
  alt : <a href="data/test.pdf">test.pdf</a>
</object>

Нашел здесь здесь.

Надеюсь, что это поможет.