当前位置:首页 > PHP

php实现pdf下载

2026-01-28 20:38:05PHP

PHP实现PDF下载的方法

使用PHP实现PDF文件下载可以通过设置HTTP头信息来控制浏览器的行为,强制触发下载而非直接打开文件。以下是几种常见方法:

使用header()函数强制下载

设置正确的HTTP头信息,指定内容类型为PDF并添加附件下载提示:

$filePath = '/path/to/your/file.pdf';
$fileName = 'document.pdf';

header('Content-Type: application/pdf');
header('Content-Disposition: attachment; filename="' . $fileName . '"');
header('Content-Length: ' . filesize($filePath));

readfile($filePath);
exit;

从URL生成PDF并下载

若需动态生成PDF内容(如使用TCPDF、FPDF等库):

require_once('tcpdf/tcpdf.php');

$pdf = new TCPDF();
$pdf->AddPage();
$pdf->SetFont('helvetica', '', 12);
$pdf->Write(0, 'Sample PDF Content');

header('Content-Type: application/pdf');
header('Content-Disposition: attachment; filename="generated.pdf"');
echo $pdf->Output('', 'S');

处理远程PDF下载

从远程服务器获取PDF并转发给客户端:

$remoteUrl = 'https://example.com/document.pdf';
$pdfContent = file_get_contents($remoteUrl);

header('Content-Type: application/pdf');
header('Content-Disposition: attachment; filename="downloaded.pdf"');
echo $pdfContent;

添加缓存控制

对于大文件或需要防止重复下载的情况:

header('Cache-Control: must-revalidate');
header('Pragma: public');
header('Expires: 0');

安全注意事项

  • 验证文件路径防止目录遍历攻击:

    $baseDir = '/safe/directory/';
    $userFile = $_GET['file'];
    if (strpos(realpath($baseDir . $userFile), $baseDir) !== 0) {
      die('Invalid file path');
    }
  • 对大文件使用分块读取避免内存溢出:

    php实现pdf下载

    $chunkSize = 1024 * 1024;
    $handle = fopen($filePath, 'rb');
    while (!feof($handle)) {
      echo fread($handle, $chunkSize);
      ob_flush();
      flush();
    }
    fclose($handle);

标签: phppdf
分享给朋友:

相关文章

php 实现跳转

php 实现跳转

PHP 实现页面跳转的方法 在PHP中,实现页面跳转可以通过多种方式完成,以下是几种常用的方法: 使用header函数 header函数是PHP中最常用的跳转方法,通过发送HTTP头部信息实现跳转。…

php实现伪静态

php实现伪静态

PHP 实现伪静态的方法 伪静态(URL Rewrite)是一种将动态URL转换为看似静态URL的技术,提升SEO友好性和用户体验。以下是几种常见的实现方式: 使用 Apache 的 mod_rew…

php 路由实现的

php 路由实现的

PHP 路由实现方法 基于原生 PHP 实现路由 创建一个简单的路由解析器,通过解析 URL 路径来调用对应的控制器或函数。 // 定义路由表 $routes = [ '/' => '…

php无法实现的

php无法实现的

PHP 的局限性 PHP 是一种广泛使用的服务器端脚本语言,主要用于 Web 开发。尽管功能强大,但在某些场景下存在局限性。 操作系统级开发 PHP 不适合编写操作系统内核或底层驱动程序。这类任务通…

php实现分享功能实现

php实现分享功能实现

实现PHP分享功能的方法 在PHP中实现分享功能可以通过多种方式完成,以下是一些常见的实现方法: 使用社交媒体分享按钮 社交媒体平台如Facebook、Twitter、LinkedIn等提供了现成…

php实现回复功能

php实现回复功能

实现回复功能的基本步骤 在PHP中实现回复功能通常涉及数据库操作、表单处理和前后端交互。以下是实现回复功能的关键步骤: 数据库设计 创建包含回复数据的表结构,例如: CREATE TABLE re…