使用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(),然后通过调用该函数即可。

相关文章

jquery不支持toggle()高(新)版本的问题解决

在js代码中引入以下代码,让高版本的jquery兼容toggle事件。代码如下: /** * Replacement for toggle */ jQuery.fn.toggle...

php使用类继承解决代码重复的问题

本文实例讲述了php使用类继承解决代码重复的问题。分享给大家供大家参考。具体分析如下: 继承直白地说就是给一个类建一个或多个子类,要创建子类就必须在类声明中使用 extends 关键字,...

php 获取文件后缀名,并判断是否合法的函数

核心代码 /** * 获取文件后缀名,并判断是否合法 * * @param string $file_name * @param array $allow_type * @...

setcookie中Cannot modify header information-headers already sent by错误的解决方法详解

复制代码 代码如下:<?php   setcookie("username","bu",time()+3600);   echo "aaaa...

php如何调用webservice应用介绍

php如何调用webservice应用介绍

1.1、Web Service基本概念 Web Service也叫XML Web Service WebService是一种可以接收从Internet或者Intranet上的其它系统中...