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


Posted in PHP onJanuary 17, 2014

我们有时会遇到这样一种情况,当需要下载一个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(),然后通过调用该函数即可。
PHP 相关文章推荐
php 读取文件乱码问题
Feb 20 PHP
php使HTML标签自动补全闭合函数代码
Oct 04 PHP
PHP查询数据库中满足条件的记录条数(两种实现方法)
Jan 29 PHP
php设计模式之命令模式使用示例
Mar 02 PHP
非常实用的PHP常用函数汇总
Dec 17 PHP
smarty内置函数foreach用法实例
Jan 22 PHP
PHP实现导出带样式的Excel
Aug 28 PHP
php简单处理XML数据的方法示例
May 19 PHP
php封装db类连接sqlite3数据库的方法实例
Dec 19 PHP
PHP封装mysqli基于面向对象的mysql数据库操作类与用法示例
Feb 25 PHP
PHP中number_format()函数的用法讲解
Apr 08 PHP
php+laravel依赖注入知识点总结
Nov 04 PHP
5种PHP创建数组的实例代码分享
Jan 17 #PHP
实现PHP多线程异步请求的3种方法
Jan 17 #PHP
一个PHP二维数组排序的函数分享
Jan 17 #PHP
PHP登陆后跳转到登陆前页面实现思路及代码
Jan 17 #PHP
修改apache配置文件去除thinkphp url中的index.php
Jan 17 #PHP
php使用curl访问https示例分享
Jan 17 #PHP
php将url地址转化为完整的a标签链接代码(php为url地址添加a标签)
Jan 17 #PHP
You might like
PHP怎样调用MSSQL的存储过程
2006/10/09 PHP
php使用parse_url和parse_str解析URL
2015/02/22 PHP
实例讲解php将字符串输出到HTML
2019/01/27 PHP
Gambit vs ForZe BO3 第三场 2.13
2021/03/10 DOTA
IE6下JS动态设置图片src地址问题
2010/01/08 Javascript
关于捕获用户何时点击window.onbeforeunload的取消事件
2011/03/06 Javascript
c#和Javascript操作同一json对象的实现代码
2012/01/17 Javascript
学习使用AngularJS文件上传控件
2016/02/16 Javascript
jQuery插件dataTables添加序号列的方法
2016/07/06 Javascript
原生JS实现圣旨卷轴展开效果
2017/03/06 Javascript
require.js中的define函数详解
2017/07/10 Javascript
node使用UEditor富文本编辑器的方法实例
2017/07/11 Javascript
backbone简介_动力节点Java学院整理
2017/07/14 Javascript
完美解决linux下node.js全局模块找不到的情况
2018/05/16 Javascript
jQuery实现购物车的总价计算和总价传值功能
2018/11/28 jQuery
node.js实现微信开发之获取用户授权
2019/03/18 Javascript
javaScript把其它类型转换为Number类型
2019/10/13 Javascript
jQuery 选择器用法基础入门示例
2020/01/04 jQuery
JS实现音量控制拖动
2020/01/15 Javascript
python numpy格式化打印的实例
2018/05/14 Python
Python3 jupyter notebook 服务器搭建过程
2018/11/30 Python
python实现的多任务版udp聊天器功能案例
2019/11/13 Python
Django多数据库配置及逆向生成model教程
2020/03/28 Python
css3模拟jq点击事件的实例代码
2017/07/06 HTML / CSS
美国最好的葡萄酒网上商店:Wine Library
2019/11/02 全球购物
培训主管的岗位职责
2013/11/23 职场文书
法务专员岗位职责
2014/01/02 职场文书
保护环境倡议书范文
2014/05/13 职场文书
廉洁家庭事迹材料
2014/05/15 职场文书
小平小道观后感
2015/06/09 职场文书
铁人观后感
2015/06/16 职场文书
2016应届毕业生实习心得体会
2015/10/09 职场文书
创业计划书之美容店
2019/09/16 职场文书
教你怎么用Python实现GIF动图的提取及合成
2021/06/15 Python
SQL Server代理:理解SQL代理错误日志处理方法
2021/06/30 SQL Server
关于python爬虫应用urllib库作用分析
2021/09/04 Python