php - 如何从数据库中显示 blob 数据类型的 PDF 文件?
问题描述
请帮我。
我试图将已转换为 blob 数据类型的 PDF 文件保存在数据库中,并且成功。但是,我不知道如何检索(*retrieve 是成功的)数据并将其再次显示为 PDF 文件。我已经尝试了我在互联网资源中找到的所有内容,但都没有成功。我尝试的一些互联网源代码可以保存从 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>";
}
?>
解决方案
真的$filepath = $row['req_attachment_path'];
是pdf文件的内容/数据吗?req_attachment_path
似乎只是路径而不是内容。租赁验证并检查请求的响应。在浏览器中,您可以在开发者控制台中看到响应,您可以在其中看到结果是 PDF 内容还是仅仅是路径。
推荐阅读
- python-3.x - 尝试导入 torchvision 时出现导入错误
- reactjs - 注册表单作为组件传递给路由时出错
- symfony - 无法刷新令牌,因为用户已更改 Syfmony 4 - EquatableInterface 问题
- package - 包限定名称。Package::<&var> 与 &Package::var 之间的差异(如果有的话)?
- android - SMS Retriever API 总是导致超时,尽管消息格式正确
- javascript - 取两个数学随机值并将它们添加到循环中
- javascript - 在应用程序的移动版本中下载 pdf
- javascript - 回调不是 Node JS 中的更新函数
- php - 如何为 phpunit assert 设置多个可接受的值
- scala - 如何将 group by 用于具有计数的多个列?