如何从数据库下载 pdf blob 文件?

How do I download a pdf blob file from database?

我正在尝试使用代码 blow 从存储为 blob 数据类型的数据库下载 pdf 文件,现在我只能以 .php 而非 .pdf 的形式查看文件].

    if(isset($_POST['submit'])){
        $docno = $_POST['docno'];
        $admno = $_POST['admno'];
        $sql = "SELECT * FROM bonafide_cert WHERE DocumentNumber=:docno AND AdmssnNo=:admno";
        $query = $dbh->prepare($sql);
        $query->bindParam(':admno',$admno,PDO::PARAM_STR);
        $query->bindParam(':docno',$docno,PDO::PARAM_STR);
        $query->execute();  
        $results=$query->fetchAll(PDO::FETCH_OBJ);
        if($query->rowCount() > 0)
        {
            foreach($results as $result)
            {
                 header('Content-Type:'.$result->mime);
                 echo $result->pdf_file;
            }
        }
    }

$result->mime 包含文件的数据类型 application/pdf$result->pdf_file 包含 PDF 文件本身作为 BLOB

在执行 php 代码时,我能够看到我的 pdf 文件,但该文件是 .php 扩展名,浏览器在其 PDF 查看器中显示该文件,但当我尝试下载它尝试将文件另存为 .php。如何将文件下载为 .pdf - 现在我每次都必须手动另存为 PDF。

尝试在 header 和 echo 语句之间添加此 header 代码行:

header('Content-Type:'.$result->mime);
header("Content-Disposition: inline; filename=filename.pdf");
echo $result->pdf_file;

您可以将 Content-Disposition: 设置为附件,如果您希望它改为下载文件。