0

我的数据库中有一个 pdf 文件作为 [BLOB - 143.3 KiB] 存储。它的用户 ID 为 12。我试图将其调用到页面,以便当我单击按钮时,pdf 会填充网页。

if (isset($_POST["work"]) && !empty($_POST["work"])) 
 {
   $result = mysql_query("SELECT file FROM ce WHERE userid=12", $c) or die("six");
   $document1=mysql_result($result, 0, 'file'); 
   echo $document1;
 }

 echo '
       <form action="yourcase.php" method="post">
          <input type="hidden" name="work" value="1">
          <input type="image" id="work" src="images/papers.png">
       </form>'; 

目前,它回显了这样的页面:‰ŒA Â@E÷9Å_ê&&Ói[Ž€°£ ZqŠôúÆŽ@ïåÿ&ŠÆÑ,¢Y[«*ÆX%Ó@/RˆOÝçÇ¡。

使用另一篇文章,我能够从我的桌面调用一个 pdf 文件,但我不知道如何从数据库中调用它。

$file = 'sample.pdf';
$filename = 'sample.pdf'; 
header('Content-type: application/pdf');
header('Content-Disposition: inline; filename="' . $filename . '"');
header('Content-Transfer-Encoding: binary');
header('Content-Length: ' . filesize($file));
header('Accept-Ranges: bytes');
@readfile($file); 

感谢@Fred,我能够拼凑出一个可行的解决方案。这就是我一直在尝试做的事情:

if (isset($_POST["work"]) && !empty($_POST["work"])) 
 { 
   $result = mysql_query("SELECT file FROM ce WHERE userid=12", $c) or die("six");
   $document1=mysql_result($result, 0, 'file'); 
   header('Content-type: application/pdf');
   echo $document1;
 }

 echo '
        <form action="fetchdoc.php" method="post">
           <input type="hidden" name="work" value="1">    
           <input type="image" id="work" src="images/papers.png">
        </form>'; 
4

3 回答 3

0

您将不得不创建 pdf 文件,然后使用 header 来读取该文件。如果您不打算保留这些文件,您可以将它们加载到临时目录,然后在完成后将其删除。如果您从数据库中回显 blob 数据,就像使用记事本打开一个 .pdf 文件一样。

于 2013-08-10T02:23:16.913 回答
0

感谢@Fred,我能够拼凑出一个可行的解决方案。这就是我一直在尝试做的事情:

if (isset($_POST["work"]) && !empty($_POST["work"])) { 
$result = mysql_query("SELECT file FROM ce WHERE userid=12", $c) or die("six");
$document1=mysql_result($result, 0, 'file'); 
header('Content-type: application/pdf');
echo $document1;}
echo '<form action="fetchdoc.php" method="post"><input type="hidden" name="work" value="1">    
<input type="image" id="work" src="images/papers.png"></form>'; 
于 2013-08-14T01:57:40.867 回答