PHP将PDF发送到客户端浏览器,而不将其写入磁盘(服务器端)

PHP将PDF发送到客户端浏览器,而不将其写入磁盘(服务器端),php,pdf,Php,Pdf,我有一个用户提交的pdf文件(文件上传)。当我得到这个文件时,我通过两个函数运行它,并将它作为一个blob存储在数据库中 $file=base64\u编码(文件获取内容($pathToFile)) 我想做的是将pdf发送回浏览器,而不将其写入磁盘(服务器端)。如果我再次构建该文件,将其保存到磁盘,并生成指向该文件的链接,那么它将正常打开 file_put_contents("pathToPutFile", base64_decode($dataFromDB)); 但是,如果我尝试将pdf文件发

我有一个用户提交的pdf文件(文件上传)。当我得到这个文件时,我通过两个函数运行它,并将它作为一个blob存储在数据库中

$file=base64\u编码(文件获取内容($pathToFile))

我想做的是将pdf发送回浏览器,而不将其写入磁盘(服务器端)。如果我再次构建该文件,将其保存到磁盘,并生成指向该文件的链接,那么它将正常打开

file_put_contents("pathToPutFile", base64_decode($dataFromDB));
但是,如果我尝试将pdf文件发送到浏览器而不保存到磁盘,我会收到一个错误“无法加载pdf文档”,如下图所示

尝试这一壮举的代码如下

$data = base64_decode($origSel['InvestigationFile']);

header('Content-Type: application/pdf');
header('Content-Disposition: inline; filename="Statement"');
header('Content-Transfer-Encoding: binary');
header('Accept-Ranges: bytes');
echo $data;
如果文件没有先写入磁盘(服务器端),是否可以将文件发送给用户

如果可能,我遗漏了什么/做错了什么


如果不可能,是什么使其不可能,以及确保用户查看完PDF文件后立即将其从服务器上删除的最佳方法是什么?

这是失败的,因为我在文档的这一部分之前有一些输出

<!DOCTYPE html>
<html lang="en">
<head>
     <meta charset="utf-8">
</head>
<body>
<div>
     "navigation bar goes here"
</div>
     <?php
        $data = base64_decode($origSel['InvestigationFile']);

        header('Content-Type: application/pdf');
        header('Content-Disposition: inline; filename="Statement"');
        header('Content-Transfer-Encoding: binary');
        header('Accept-Ranges: bytes');
        echo $data;
     ?>

“导航栏在这里”

这是失败的,因为我在文档的这一部分之前有一些输出

<!DOCTYPE html>
<html lang="en">
<head>
     <meta charset="utf-8">
</head>
<body>
<div>
     "navigation bar goes here"
</div>
     <?php
        $data = base64_decode($origSel['InvestigationFile']);

        header('Content-Type: application/pdf');
        header('Content-Disposition: inline; filename="Statement"');
        header('Content-Transfer-Encoding: binary');
        header('Accept-Ranges: bytes');
        echo $data;
     ?>

“导航栏在这里”