Php将Blob文件(pdf或doc)显示在表格中

时间:2017-10-27 14:56:14

标签: php mysql sql blob

您好我已经在数据库中列出了一个人员列表,对于我关联文件的每个人,它可以是.pdf或.doc。我已经保存到数据库pdf或doc如何longblob。 现在,我想选择所有人及其文件(文件列是CV)。我这样做了:

if ($result->num_rows > 0) {

foreach ($result as $item) {

    $dateTmp = explode("-",$item['ETA']);
    $dt = $dateTmp[2]."/".$dateTmp[1]."/".$dateTmp[0];
    $content=base64_encode($item['CV']);


    $array[$index] = '<tr><td>' . $item['NOME'] . '</td><td>' . $item['COGNOME'] . '</td>
        <td>' .$dt.'</td><td>' . $item['TITOLO'] .'</td><td> + </td><span>
        <td>'.$item['EMAIL'].'</td><td>'.$item['TELEFONO'].'</td>
        <td>'.$item['RUOLO'].'</td><td>'.$item['SEDE'].'</td>
        <td><object data="'.$a.'" type="application/pdf">
        </object></td>
        </span></tr>';

    $index++;

}
}

我完成周期后:

echo json_encode($array);

然后,在Ajax调用成功之后,我已经这样做了:

success: function (data) {

                    var result = data;
                    console.log(result);
                    $("#tableFilter tbody").append(result);


                },

这种方法不起作用的原因? 哪里错了? 是否将文件放入元素对象?

我已经解决了这个问题: 我用这个改变了上面的代码:

$array[$index] = '<tr><td>' . $item['NOME'] . '</td><td>' . $item['COGNOME'] . '</td>
            <td>' .$dt.'</td><td>' . $item['TITOLO'] .'</td><td> + </td><span>
            <td>'.$item['EMAIL'].'</td><td>'.$item['TELEFONO'].'</td>
            <td>'.$item['RUOLO'].'</td><td>'.$item['SEDE'].'</td>
            <td><a href="download.php?id='.$item["ID"].'"  title="DOWNLOAD ">DOWNLOAD FILE</a></td>
            </span></tr>';

现在我创建一个带有链接到td的rowq,在href上我为下载文件添加了php页面,我还指定了href文件的id。然后,如果我点击我打电话的链接 的download.php?代码在哪里:

<?php

$id = $_GET['id'];
$servername = "localhost";
$username = "test";
$password = "mypassword";
$dbname = "mydb";


// Create connection
$conn = new mysqli($servername, $username, $password, $dbname);

$sql = "SELECT BLOBFILE, NAMEFILE,TYPEFILE, SIZEFILE FROM candidati WHERE id = $id";
$result = $conn->query($sql);
$type;
$size;
$nameFile;
$file;

foreach ($result as $item){

    $type = $item["TYPEFILE"];
    $size = $item["SIZEFILE"];
    $nameCv = $item["NAMEFILE"];
    $cv = $item["BLOBFILE"];
}

header("Content-type: ".$type);
header("Content-length: ".$size);
header("Content-Disposition: attachment; filename=".$nameFile);
header("Content-Description: PHP Generated Data");
echo $file;

?> 

然后开始下载文件。我有一个最后一个问题。既然我只有一行可以删除周期foreach?怎么样?

0 个答案:

没有答案