Просмотр потока PDF в браузере - PullRequest
0 голосов
/ 14 июня 2019

У меня есть файл PDF, который я хочу просмотреть на вкладке браузера. Я знаю, что могу использовать ссылку на файл напрямую, чтобы отобразить ее, но я хочу прочитать содержимое файла в переменной и использовать переменную для отображения файла. Причина в том, что я хочу удалить файл сразу после прочтения в переменной.

PHP:

$fdata = file_get_contents($tmppdf);
header("Content-type: application/pdf");
header("Content-disposition: inline; filename=".$tmppdf);
return $fdata;

Ajax:

$('body').on('click', '.printInvoice', function () {
     var purchase_id = $(this).data("id");
     // window.location.href = "/purchases/print" + '/' + purchase_id;
     window.open('/purchases/print' + '/' + purchase_id, '_blank');
});

Я получаю двоичное содержимое в результате. Может кто-нибудь помочь, что не так с моим кодом.

enter image description here

ОБНОВЛЕНИЕ: Я изменил свой код Ajax на ниже, и теперь я получаю пустую страницу PDF

$('body').on('click', '.printInvoice', function () {
   var purchase_id = $(this).data("id");
   $.ajax({
     type: "GET",
     url: "/purchases/print" + '/' + purchase_id,
     success: function (data) {
        var blob = new Blob([data], {type: 'application/pdf'});
        var blobURL = window.URL.createObjectURL(blob);
        window.open(blobURL,'_blank');
        },
     error: function (data) {
        alert("Unable to Print !!!");
        }
});

Ответы [ 2 ]

1 голос
/ 14 июня 2019

Laravel на самом деле имеет встроенную функциональность для возврата ответов файла . Это автоматически установит правильные заголовки, чтобы файл отображался в браузере.

return response()->file($tmppdf);
0 голосов
/ 14 июня 2019

Возможно:

return Response::make($fdata, 200, [
    'Content-Type' => 'application/pdf',
    'Content-Disposition' => 'inline; filename="'.$tmppdf.'"'
]);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...