我将PDF文档作为LONGBLOB存储在数据库中。是否存在将这些PDF嵌入网页的解决方案?我找到了JavaScript的PDFObject,但是它仅适用于存储在文件夹中的PDF文件。另外,我可以将Blob中的PDF转换足够长的时间来读取它吗?

目前,我使用以下脚本打开PDF:

require_once 'init.php';

$sql = "SELECT data FROM dms_files WHERE id=42";

// the result of the query
$result = mysql_query("$sql") or die("Invalid query: " . mysql_error());

// set the header for the image
header( "Pragma: private");
header( "Cache-Control: max-age=0");
header("Content-type: application/pdf");
header('Content-Transfer-Encoding: binary');
header('Content-Description: File Transfer');
header('Content-Transfer-Encoding: binary');

echo $pdf;


它会打开PDF作为文件,但不会将其嵌入页面。

上载PDF:

$docData = addslashes(file_get_contents($_FILES['document']['tmp_name']));
$docProperties = filesize($_FILES['document']['tmp_name']);
$sqldoc = "INSERT INTO dms_files(mime ,data) VALUES('{$docProperties}', '{$docData}')";
$current_id = mysql_query($sqldoc) or die("<b>Error:</b> Problem on Doc. Insert<br/>" . mysql_error());
$docId = mysql_insert_id();


我试图用这个:

<?php
require_once 'init.php';

$sql = "SELECT * FROM dms_files WHERE id = 42 ";

// the result of the query
$result = mysql_query("$sql") or die("Invalid query: " . mysql_error());
$row = mysql_fetch_row($result);

$basedir = 'LIB/';
$pdfname = strtolower(preg_replace('/([^\w\d\-_]+)/', '-', $row->nazov_rd));
$filename = $basedir . $pdfname . '_' . $row->id. '.pdf';
$file_content = base64_decode($row->data);
file_put_contents('filename.pdf', $row->data);

?>


但是,它显示以下错误:


  注意:尝试在第11行的/Applications/XAMPP/xamppfiles/htdocs/D/PDFSHOW/pdfshow.php中获取非对象的属性
  
  注意:尝试在第12行的/Applications/XAMPP/xamppfiles/htdocs/D/PDFSHOW/pdfshow.php中获取非对象的属性
  
  注意:尝试在第13行的/Applications/XAMPP/xamppfiles/htdocs/D/PDFSHOW/pdfshow.php中获取非对象的属性
  
  注意:尝试在第14行的/Applications/XAMPP/xamppfiles/htdocs/D/PDFSHOW/pdfshow.php中获取非对象的属性


怎么了?当我打开filename.pdf时,预览显示“文件无法打开,因为它为空”



我能够解决它;这不见了:

while($row = mysql_fetch_object($rs)){

最佳答案

创建一个其他页面,在其中使用javascript pdfobject嵌入此元素。

10-06 15:22