使用PHP强制下载PDF文件示例

yipeiwu_com6年前PHP代码库
我们有时会遇到这样一种情况,当需要下载一个PDF文件时,如果不经处理会直接在浏览器里打开PDF文件,然后再需要通过另存为才能保存下载文件。本文将通过PHP来实现直接下载PDF文件。

实现原理:我们仅仅只需要修改页面HTTP头,把Content-Type设置为force-download,问题即可解决。

请看代码:
复制代码 代码如下:

forceDownload("pdfdemo.pdf");
function forceDownload($filename) {

if (false == file_exists($filename)) {
return false;
}

// http headers
header('Content-Type: application-x/force-download');
header('Content-Disposition: attachment; filename="' . basename($filename) .'"');
header('Content-length: ' . filesize($filename));

// for IE6
if (false === strpos($_SERVER['HTTP_USER_AGENT'], 'MSIE 6')) {
header('Cache-Control: no-cache, must-revalidate');
}
header('Pragma: no-cache');

// read file content and output
return readfile($filename);;
}

为了方便,我写了一个函数forceDownload(),然后通过调用该函数即可。

相关文章

实测在class的function中include的文件中非php的global全局环境

测试代码1.php 复制代码 代码如下: <?php $g1 = 'g1'; class c{ function fun() { include('2.php'); echo "\...

PHP+SQL 注入攻击的技术实现以及预防办法

1. php 配置文件 php.ini 中的 magic_quotes_gpc 选项没有打开,被置为 off 2. 开发者没有对数据类型进行检查和转义   不过事实上,第二点最为重要。我...

PHP数据对象PDO操作技巧小结

PHP数据对象PDO操作技巧小结

本文实例讲述了PHP数据对象PDO操作技巧。分享给大家供大家参考,具体如下: PHP 数据对象 (PDO) 扩展为PHP访问数据库定义了一个轻量级的一致接口。 <?ph...

php生成SessionID和图片校验码的思路和实现代码

/****** 产生Session ID ******/ 基本的思路: 是把当前微秒的时间获取, 然后产生以个随机数字, 把随机数字和当前时间相加后加密一下, 最后再截取需要的长度...

PHP连接access数据库

复制代码 代码如下:<?PHP /*    创建ADO连接 */ $conn = @new COM("ADODB.Con...