Вывести файл PDF пользователю из двоичной строки - PullRequest
0 голосов
/ 04 марта 2020

Я получаю двоичный файл (файл PDF) от веб-службы, и мне нужно показать его пользователю на странице. Мне удалось загрузить его с помощью заголовков, но мне нужно распечатать его на странице внутри div , а не загрузить его. Вот что у меня на данный момент:

$binaryString = '.....';
$convertedFIle= base64_decode($base64);
file_put_contents('my.pdf', $convertedFIle);

header('Content-type: application/pdf');
header('Content-Disposition: attachment; filename="my.pdf"');

Ответы [ 2 ]

0 голосов
/ 12 марта 2020

Я думал о том, что сказал @CountKyle, и мне удается заставить его работать. Так как я получал PDF от SOAP звонка и от AJAX, я сделал это немного по-другому.

var htmlText = '<embed style="position:absolute; height:100%; width:100%;"'
                        + ' type="application/pdf"'
                        + ' src="data:application/pdf;base64,'
                        + escape(server_response)
                        + '"></embed>';

$( "#modal-preview-pdf-container" ).html(htmlText);

Теперь это в правильном div, который я хотел.

0 голосов
/ 04 марта 2020

Заголовки, которые вы установили, сообщат браузеру, чтобы он загружал файл, а не отображал его. Если вы хотите отобразить его, вам нужно встроить его в iframe или объект.

Предполагая, что ваш PDF находится в документе root, вы можете сделать что-то вроде этого:

<!DOCTYPE html>
<html>
  <head>
    <title></title>
  </head>
  <body>
    <iframe src="/myPdf.pdf" width="100%" height="500px">
    </iframe>
  </body>
</html>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...