Intereting Posts
Как обработать XML с PHP, который был отправлен на сервер как text / xml? медиа конвертация библиотека / плагин предпочтительно php Как вставить несколько записей в одну поездку в базу данных с использованием PDO? Почему PDO_MySQL не возвращает целое число? Регулярное выражение для соответствия неограниченному числу параметров WordPress: включение содержимого одной страницы в другую pecl install cassandra throws: "error: Не удалось загрузить libcassandra" PHP – вход в скрипт, не создающий сеансы laravel – привязка к пользовательским шрифтам Как найти элементы в массиве, которые содержат заданную подстроку? Зачем возвращать новый статический? (PHP) Проверка загрузки изображений на PHP Эффективное запрещение IP-адресов Использование php и mysql? Отображение состояния сообщения: чтение и непрочитанное (отличается от других пользователей) в системе обмена сообщениями PHP / MySQL Вместо вывода выводится код PHP

Как загрузить файл PDF, созданный с помощью TCPDF (PHP) с помощью AJAX (jQuery)?

Я использую Yii Framework, TCPDF и jQuery для генерации pdf.

PDF создается путем ввода в форму и отправки его с помощью ajax.

PDF создан, но вот проблема, когда он возвращается клиенту, он не загружается.

вот PHP-код $pdf->Output('Folder Label.pdf','D');

функция jQuery on success имеет success: function(data) { window.open(data); } success: function(data) { window.open(data); }

Что я получил с этого сайта.

Не могли бы вы помочь

Если проблема в том, что вы не получаете диалоговое окно загрузки браузера для PDF-файла, то решение должно сделать это следующим образом:

Во-первых, перенаправить браузер (используя window.location как говорят другие ответы), чтобы перейти к специальному действию контроллера в вашем приложении, например, с этим URL-адресом: http://your.application.com/download/pdf/filename.pdf .

Внесите действие, указанное в URL-адресе, как показано ниже:

 public function actionPdf() { header('Content-Type: application/pdf'); header('Content-Disposition: attachment; filename="filename.pdf";'); header('Content-Length: '.filesize('path/to/pdf')); readfile('path/to/pdf'); Yii::app()->end(); } 

Это заставит браузер загружать файл.

Вам нужно сохранить PDF-файл где-нибудь на своем сервере, а затем выпустить window.location = '/url/to/pdf-you-just-saved.pdf'; из вашего javascript. Затем пользовательский браузер предложит им загрузить файл PDF.

Не совсем, это вызовет ошибки в некоторых браузерах, это правильный способ установить расположение окна.

 window.location.assign( downloadUrlToPdf ); 

Так

  1. Отправьте запрос, чтобы сделать PDF через Ajax на сервер
  2. Обработать и создать pdf-файл на сервере
  3. Вернитесь в Ajax, назовите URL-адрес файла, который вы только что создали
  4. Используйте вышеуказанный фрагмент кода, чтобы открыть загрузку указанного файла

в tcpdf, просто передайте этот аргумент методу вывода:

 $pdf->Output('yourfilename.pdf', 'D'); 

это все