如何使用php从mysql显示.pdf文件

时间:2015-05-22 11:26:55

标签: php mysql pdf joomla

亲爱的所有我能够显示来自mysql的图像。但是当我想显示同样存储在我的数据库中的pdf时,我无法做到这一点。当我使用此代码时,此代码显示一小块绿色图像,但不显示.pdf文件。此代码适用于图像。但是我无法显示.pdf文件。 可以帮我告诉我在我的代码中我必须改变。我请求给出能够显示PDF文件的正确更改行。 提前谢谢!

<?php

    $servername = "localhost";
    $username   = "root";
    $dbname     = "db_dat";
    $password   = "";


    $conn = mysqli_connect($servername, $username, $password, $dbname);

    $passno="";
    $doi="";
    $doe="";
    $poi="";
    $empid='';
    $emp_name='';
    $desg='';
    $comp_add='';
    $dob='';
    $img='';


   if (isset($_POST['pass'])) {
        $passno=$_POST['pass'];
    }
    if (isset($_POST['dateofissue'])) {
        $doi=$_POST['dateofissue'];
    }
    if (isset($_POST['dateofexpiry'])) {
        $doe=$_POST['dateofexpiry'];
    }
    if (isset($_POST['issueplace'])) {
        $poi=$_POST['issueplace'];
    }
    if (isset($_POST['issueplace'])) {
        $poi=$_POST['issueplace'];
    }
    if (isset($_POST['content'])) {
        $empid=$_POST['content'];
    }
    if (isset($_POST['name'])) {
        $emp_name=$_POST['name'];
    }
    if (isset($_POST['designation'])) {
        $desg=$_POST['desgination'];
    }
    if (isset($_POST['companyaddress'])) {
        $comp_add=$_POST['companyaddress'];
    }
    if (isset($_POST['dateofbirth'])) {
        $dob=$_POST['dateofbirth'];
    }
    if (isset($_POST['image'])) {
        $img=$_POST['image'];
    }



    $sql = "SELECT * from upload WHERE EMP_ID='".$empid."'";
    $result = mysqli_query($conn,$sql) ;
    while($row = mysqli_fetch_array($result)){
       $img= '<img src="data:image/jpeg;base64,'.base64_encode( $row['image'] ).'"/>';
       $passno=$row['passport_no'];
       $doi=$row['dateofissue'];
       $doe=$row['dateofexpiry'];
       $poi=$row['placeofissue'];
       $empid=$row['EMP_ID'];
       $emp_name=$row['employee_name'];
       $desg=$row['designation'];
       $comp_add=$row['company_address'];
       $dob=$row['dateofbirth'];
    }
?>    
<!DOCTYPE html>
<html>
    <head>


        <body>
            <form method="POST" action="" >
                <table>
                    <tr><td>Enter Employee Id</td> <td><input type="text" name="content"   id="content"></td></tr>
                    <tr><td><input type="submit" class="FormSubmit"></td></tr>
                    <tr><td>Employee Name</td> <td>        <?php echo $emp_name; ?> </td></tr>
                    <tr><td>Employee desgination</td> <td> <?php echo $desg; ?> </td></tr>
                    <tr><td>Company Address</td> <td>      <?php echo $comp_add; ?> </td></tr>
                    <tr><td>DOB.</td> <td>                 <?php echo $dob; ?> </td></tr>
                    <tr><td>Date of Issue</td> <td>        <?php echo $doi; ?> </td></tr>
                    <tr><td>Date of Expiry</td> <td>       <?php echo $doe; ?> </td></tr>
                    <tr><td>Place of Issue</td> <td>       <?php echo $poi; ?> </td></tr>
                    <tr><td>Passport Image</td> <td>       <?php echo $img; ?> </td></tr>
                    <div class="space"></div>
                    <div id="flash"></div>
                    <div id="show"></div>
                    </div>
                </table>
            </form>    
        </body>
    </head>    
</html>

3 个答案:

答案 0 :(得分:1)

这是因为您正在添加图片而不是pdf ...我们没有像<pdf这样的任何标签,因此我们创建了一个可点击的链接.pdf与图片之间有所不同。

您的可点击链接将由

生成
 $img="<a href='"$row['image']."'>Download </a> ";

另一种方法是使用iframe

您将在其中创建iframe并在iframe中打开pdf

 echo" <iframe src='"$row['image']."'></iframe>";

row['image']必须有完整的路径,例如

 http://hostname.com/uploads/yourPDFfile.pdf

答案 1 :(得分:0)

在显示pdf文件之前,首先检查其pdf是否从目录中提供pdf图像的路径

答案 2 :(得分:0)

要显示pdf文件,您还必须设置正确的标题以显示文件。 尝试设置这些标头并将$ filename替换为您的文件路径。

  header('Content-type: application/pdf');
  header('Content-Disposition: inline; filename="' . $filename . '"');
  header('Content-Transfer-Encoding: binary');