PDF文件下载的正确PHP头

2022-08-30 07:56:45

当用户点击链接时,我真的很难让我的应用程序打开pdf。

到目前为止,锚点标记重定向到一个页面,该页面发送的标头是:

$filename='./pdf/jobs/pdffile.pdf;

$url_download = BASE_URL . RELATIVE_PATH . $filename;

header("Content-type:application/pdf");
header("Content-Disposition:inline;filename='$filename");
readfile("downloaded.pdf");

这似乎不起作用,过去有人成功解决这个问题吗?


答案 1

w3schools 上的示例 2 显示了您要实现的目标。

<?php
header("Content-type:application/pdf");

// It will be called downloaded.pdf
header("Content-Disposition:attachment;filename='downloaded.pdf'");

// The PDF source is in original.pdf
readfile("original.pdf");
?>

还要记住,

请务必注意,在发送任何实际输出之前必须调用 header()(在 PHP 4 及更高版本中,您可以使用输出缓冲来解决此问题)


答案 2
$name = 'file.pdf';
//file_get_contents is standard function
$content = file_get_contents($name);
header('Content-Type: application/pdf');
header('Content-Length: '.strlen( $content ));
header('Content-disposition: inline; filename="' . $name . '"');
header('Cache-Control: public, must-revalidate, max-age=0');
header('Pragma: public');
header('Expires: Sat, 26 Jul 1997 05:00:00 GMT');
header('Last-Modified: '.gmdate('D, d M Y H:i:s').' GMT');
echo $content;

推荐