2015-09-16 2 views
-2

Я получаю двоичный файл 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; 
    } 
?> 

ответ

0

Я создал форму для почтовых данных и установить действие на PHP скрипт, который зафиксировал вопрос не скачивая файл на компьютер пользователя. Проблема заключалась в отправке данных в php-скрипт из запроса ajax post, где ответ будет возвращен в процесс ajax до того, как процесс загрузки php может произойти.

Смежные вопросы