37

PDFレポートを生成するphpスクリプトがあります。PDF ドキュメントを保存しようとすると、php スクリプトの名前が report_pdf.php であるため、Acrobat が提案するファイル名は report_pdf になります。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();

?>
4

5 に答える 5

69

試す:

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

また

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

もう 1 つのオプションは$_SERVER['PATH_INFO']、「July Report.pdf」を渡すために を使用することです。リンクの例は次のとおりです。

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

そのファイルはデフォルトで「July Report.pdf」として保存され、古いphpスクリプトとまったく同じように動作するはずです.pdfへのリンクを生成するコードを変更するだけです.

于 2010-01-06T20:33:03.243 に答える
9

次のようにする必要があります。

header('Content-disposition: attachment;filename="July Report.pdf"'); 
于 2010-01-06T20:31:33.370 に答える
3

https://github.com/rospdf/pdf-php/raw/master/readme.pdf (ページ 19)に基づくストリーム メソッドは、パラメーターとして配列を受け入れます。

stream([array options]) 出力に使用され、必要なヘッダーが設定され、pdf コードが出力されます。options 配列を使用して、出力に関する多くのことを設定できます。

'Content-Disposition'=>'filename'ファイル名を設定します...

このコードは私にとってはうまくいきます

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

私の場合は使用しますezStream()stream()、同じ結果が得られるはずです。

于 2015-07-03T08:43:55.710 に答える
0

ハイフンを使用してファイル名からスペースを削除しようとしましたか? だから、その名前はこのようなものに違いないと思います。ファイル名=7月レポート.pdf

于 2011-03-12T01:31:19.757 に答える