используя header (), чтобы переписать имя файла в URL для динамического pdf

У меня есть php-скрипт, который создает отчет в формате pdf. Когда мы идем, чтобы сохранить PDF-документ, имя файла, которое предлагает Acrobat, – report_pdf, так как php-скрипт называется report_pdf.php. Я хотел бы динамически назвать PDF-файл, поэтому мне не нужно вводить соответствующее имя для отчета каждый раз, когда я его сохраняю.

При запросе в группе новостей кто-то предложил это, где filename="July Report.pdf" – это предполагаемое название отчета

 <? header('Content-Type: application/pdf'); header('Content-disposition: filename="July Report.pdf"'); 

Но это не сработает. Я делаю это неправильно, или эта работа вообще? Это работа для mod_rewrite?


Поэтому я попробовал оба

 header('Content-disposition: inline; filename="July Report.pdf"'); 

а также

 header('Content-disposition: attachment; filename="July Report.pdf"'); 

(не в то же время), и я не работаю для меня. Это проблема с моим веб-хостом? Для этого url , вот мой код:

 <? header('Content-disposition: inline; filename="July Report.pdf"'); // requires the R&OS pdf class require_once('class.ezpdf.php'); require_once('class.pdf.php'); // make a new pdf object $pdf = new Cpdf(); // select the font $pdf->selectFont('./fonts/Helvetica'); $pdf->addText(30,400,30,'Hello World'); $pdf->stream(); ?> 

Related of "используя header (), чтобы переписать имя файла в URL для динамического pdf"

Пытаться:

 header('Content-Disposition: attachment; filename="July Report.pdf"'); 

или

 header('Content-Disposition: inline; filename="July Report.pdf"'); 

Другим вариантом было бы использовать $_SERVER['PATH_INFO'] для передачи вашего «July Report.pdf» – пример ссылки может быть:

 <a href="report_pdf.php/July%20Report.pdf?month=07"> 

Этот файл должен по умолчанию сохранять как «July Report.pdf» – и должен вести себя точно так же, как и ваш старый скрипт php, просто измените код, который создает ссылку на pdf.

Должно быть:

 header('Content-disposition: attachment;filename="July Report.pdf"'); 

На основе https://github.com/rospdf/pdf-php/raw/master/readme.pdf (стр. 19) Метод stream принимает массив как параметр:

stream([array options]) Используется для вывода, это задает необходимые заголовки и выводит pdf-код. Массив опций может использоваться для определения количества элементов вывода:

'Content-Disposition'=>'filename' устанавливает имя файла, …

Этот код хорошо работает для меня

 $ezOutput = $pdf->ezStream(array("Content-Disposition"=>"YourFileName.pdf")); 

В моем случае я использую ezStream() но я думаю, что stream() должен дать тот же результат.

Имя, отображаемое на закладке заголовка в браузере

У меня была та же проблема, и я обнаружил, что это метаданные отсутствуют в моем .pdf. Я использовал инструменты (инструменты debenu PDF) для редактирования свойства pdf, такого как автор, название и т. Д. Я просто изменяю заголовок из пустого поля на то, что я хочу, загружаю новый pdf и теперь с тем же кодом, тем же скриптом браузер показывает правильное имя!

Для имени, когда вы запрашиваете сохранение документа

это то, что вы указываете в заголовке filename =

Вы пытались удалить пробелы из имени файла с помощью дефиса? Итак, я думаю, что его имя должно быть таким; имя файла = июль-Report.pdf