欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  后端开发

readfile输出文件到浏览器页面,想要改变这个页面的title

程序员文章站 2022-03-19 17:51:54
...
$pdf_name=basename($_SERVER['REQUEST_URI']);
$pdf_dir=registry("DOC_ROOT")."test/". $csrUid. "/" . $pdf_name;
if (!file_exists($pdf_dir)) {
    die ("文件不存在!") ;
}
//$pdf_dir = http://xxxx.com/test/test-2015/download.pdf
header("Content-type: application/pdf");
readfile($pdf_dir);   //  1
exit;

像上面所述,// 1 处输出在页面输出了pdf内容,但是页面的title没有变,我现在想把这个输出pdf的页面title改为$pdf_name的值,用了ob_start()/ob_end_flush()/echo "

$pdf_name"; ,还是失败了,不能改变这个title。
求解该怎么书写呢?

回复内容:

$pdf_name=basename($_SERVER['REQUEST_URI']);
$pdf_dir=registry("DOC_ROOT")."test/". $csrUid. "/" . $pdf_name;
if (!file_exists($pdf_dir)) {
    die ("文件不存在!") ;
}
//$pdf_dir = http://xxxx.com/test/test-2015/download.pdf
header("Content-type: application/pdf");
readfile($pdf_dir);   //  1
exit;

像上面所述,// 1 处输出在页面输出了pdf内容,但是页面的title没有变,我现在想把这个输出pdf的页面title改为$pdf_name的值,用了ob_start()/ob_end_flush()/echo "

$pdf_name"; ,还是失败了,不能改变这个title。
求解该怎么书写呢?

你输出的内容是 application/pdf 类型的, 所以浏览器拿什么内容做标题, 你是没办法通过输出 来控制的.

目前实验的结果是:
chrome 在显示 pdf文件时, 标题是显示的URL地址.
IE 是直接显示下载的(如果安装的有PDF阅读的插件不排除是直接显示,而非下载的情况).
Firefox 在加载中的时候,显示的是PDF的文件名, 加载完成之后,显示的是PDF中的标题.
以这个URL为例: http://www.st.com/web/en/resource/technical/document/datasheet/CD00001...
Chrome:
readfile输出文件到浏览器页面,想要改变这个页面的title

IE:
readfile输出文件到浏览器页面,想要改变这个页面的title
Firefox:
readfile输出文件到浏览器页面,想要改变这个页面的title