Использование AJAX и PHP для вывода PDF

Мое веб-приложение должно работать так, что пользователь заполняет форму, а затем AJAX отправляет данные формы в файл PHP, который генерирует PDF (с использованием xpdf). Затем сгенерированный PDF должен быть доступен для загрузки на странице HTML с AJAX.

Если я открою pdf.php прямо в браузере, он будет работать нормально. Однако мне нужно выяснить, как соединить его с AJAX, чтобы он отправлял сгенерированный PDF обратно в AJAX, и пользователь может просто нажать кнопку на странице, чтобы загрузить его.

AJAX:

$.ajax({
    url: 'pdf.php',
    type: 'POST',
    data: pdfData
})
.done(function(response){
});

pdf.php:

<?php 
include('fpdf.php');
include('fpdi.php'); 

// initiate FPDI 
$pdf =& new FPDI(); 
// add a page 
$pdf->AddPage();
...
$pdf->Output('address.pdf', 'D'); 
?>

2 ответа

После того, как ваш файл PDF готов, вы знаете путь и все детали для PDF. Верните объект html или json обратно на свою страницу и создайте новую кнопку html, которая будет ссылаться на файл PDF.

Ваши возвращенные данные будут содержать все необходимые данные о PDF. Имя, путь и т.д...

Вам нужен двухэтапный процесс, вы не можете сделать это только с помощью первого вызова AJAX.

  1. Ваш вызов AJAX не должен возвращать содержимое PDF, он должен возвращать URL для доступа к PDF, например, /path/to/getpdf.php?id=23535&securitykey=142505
  2. Ваш JavaScript должен попытаться открыть этот новый URL в новом окне или вкладке
  3. Ваш getpdf.php скрипт должен обслуживать данные PDF с соответствующим HTTP Content-Type а также Content-Disposition Заголовки, чтобы заставить приглашение загрузки.

Большинство браузеров автоматически закрывают новую вкладку после того, как пользователь решает открыть / сохранить файл.

Другие вопросы по тегам