Использование 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.
- Ваш вызов AJAX не должен возвращать содержимое PDF, он должен возвращать URL для доступа к PDF, например,
/path/to/getpdf.php?id=23535&securitykey=142505
- Ваш JavaScript должен попытаться открыть этот новый URL в новом окне или вкладке
- Ваш
getpdf.php
скрипт должен обслуживать данные PDF с соответствующим HTTPContent-Type
а такжеContent-Disposition
Заголовки, чтобы заставить приглашение загрузки.
Большинство браузеров автоматически закрывают новую вкладку после того, как пользователь решает открыть / сохранить файл.