Я получаю двоичный файл PDF из углового запроса $ http.get. Я пытаюсь открыть диалоговое окно, предлагающее пользователю загрузить файл с помощью readfile(), но диалог не отображается. Кроме того, существует ли способ использовать двоичные данные, не записывая их в файловую систему для использования с readfile(), чтобы предложить пользователю загрузить файл?php подскажите пользователю скачать pdf
return $http({
method: 'get',
url: env.baseUri + '/1.0/releases/report/file?regions=' + regionIds
})
.then(
function (response) {
getPdfFactory.getPdf(response.data)
.then(function(pdf){
// replace with php
//window.open("data:application/pdf;base64, " + pdf.data);
...
<?php
if(isset($_POST)) {
$postdata = file_get_contents("php://input");
$binary = json_decode($postdata);
// $base64pdf = base64_encode($binary);
file_put_contents("../../../src/uploads/report.pdf", $binary);
// echo $base64pdf;
$file = "../../../src/uploads/report.pdf";
header('Content-Description: File Transfer');
header('Content-Type: application/pdf');
header('Content-Disposition: attachment; filename='.basename($file));
header('Content-Transfer-Encoding: binary');
header('Expires: 0');
header('Cache-Control: must-revalidate');
header('Pragma: public');
header('Content-Length: ' . filesize($file));
ob_clean();
flush();
readfile($file);
exit;
}
?>