如何显示数据库中blob数据类型的PDF文件?

时间:2019-10-24 06:20:26

标签: php database pdf blob

请帮助我。

我试图将已转换为blob数据类型的PDF文件保存在数据库中,并且成功。但是,我不知道如何检索(*检索成功)返回数据并再次将其显示为PDF文件。我已经尝试了在互联网资源中找到的所有内容,但都没有成功。我尝试的某些Internet源代码可以启用从blob解码的PDF文件的保存,但文件损坏。

希望有人可以给我指路。谢谢。

以下是将blob数据类型显示为PDF的代码( $ filepath来自blob ):

<?php
ini_set('session.save_path', '../tmp');
session_start();

$req_id = "";
$refno  = "";
$req_status = "";

if(isset($_SESSION['AUTHORISATION']))
{
    include '../conn.php';

    if($_SESSION['AUTHORISATION'] != "ACCESS GRANTED")
    {
        echo "<script type='text/javascript'>alert('Please login to continue..');window.location.href='../login';</script>";
    }
    else
    {
            if((isset($_POST['request_id'])) && (isset($_POST['req_refno'])) && (isset($_POST['file_no'])))
            {
                $req_id = $_POST['request_id'];
                //echo $req_id;
                $refno  = $_POST['req_refno'];
                //echo $refno ;
                $req_status  = $_POST['file_no'];
                //echo $req_status ;

                if($req_status == 1){
                    // echo $req_id;
                    // echo $req_title;
                    $result = mysqli_query($conn, "Select * from attachment where req_refno = '$refno' and type = 'Summary File';");

                    while($row= mysqli_fetch_array($result)){
                        //get row from table selected
                        $filename = $row['req_attachment_name'];
                        //echo $filename;
                        $filepath = $row['req_attachment_path'];
                        //echo $filepath;

                        //save pdf to computer
                        header("Content-Type: application/pdf");
                        header("Content-Length: ".strlen($filepath));
                        header('Content-Disposition: attachment; filename='.$filename);
                        echo $filepath;

                    }

                }
                else
                {
                    echo "<script type='text/javascript'>alert('Problem to open file!');window.location.href='pending';</script>";
                }
            }
            else
            {
                echo "<script type='text/javascript'>alert('Please select a record first!');window.location.href='pending';</script>";
            }
    }
}
else
{
    echo "<script type='text/javascript'>alert('Please login to continue..');window.location.href='../login';</script>";
}

?>

1 个答案:

答案 0 :(得分:0)

{'dog': 1, 'is': 3, 'big': 2, 'cat': 2, 'dark': 1} 确实是pdf文件的内容/数据吗? $filepath = $row['req_attachment_path'];似乎仅是路径,而不是内容。确认并检查请求的响应。在浏览器中,您可以在开发人员控制台中看到响应,在那里您可以看到结果是PDF内容还是仅仅是路径。