【问题标题】:PHP MYSQL FPDF retrieving pdf string stored as blobPHP MYSQL FPDF检索存储为blob的pdf字符串
【发布时间】:2010-03-08 20:34:44
【问题描述】:

使用上述技术,我想创建一个 PDF,将其存储在我的数据库中,然后通过电子邮件发送。一键搞定。

我也想调用它并让它能够显示超链接。

我对 FPDF 很陌生。因此,我试图开始非常缓慢。

我从这个链接开始stackoverflow Q

我将他的两部分代码放在同一个页面中,并尝试使用不同的页面。我进行了建议的更改/添加,甚至进行了逐行比较。

我仍然收到消息“格式错误:不是 PDF 或已损坏”

如果我只是 $pdf->Output();我得到要显示的pdf。它要么是字符串输出的方式,要么是 header() 函数。这不是存储方法,除非我的列设置不正确。但是一个blob就是一个blob,对吧?

如果你愿意,我可以上传经过净化的代码。请告诉我什么可以帮助回答这个问题。

谢谢

JJ

这是应要求提供的代码 这是我输入的地方:

<?php
session_start();
include "server.php";//my file to connect to db
require('fpdf.php');

$pdf=new FPDF();
$pdf->AddPage();
$pdf->SetFont('Arial','B',16);
$pdf->Cell(40,10,'Hello World!');

$content = $pdf->Output("", "S"); //return the pdf file content as string

$sql = "update table set table_pdf= '".addslashes($content)."' " . 
    "where table_id = '188'";

mysql_query($sql);

//here's where I retrieve it

$sql2 = "select table_pdf from table where table_id = '188'"; 
$result2 = mysql_query($sql2); 
$rs = mysql_fetch_assoc($result2); 

$content2 = $rs['rdngs_hdr_pdf']; 
header('Content-Type: application/pdf'); 
header("Content-Length: ".strlen(content2)); 
header('Content-Disposition: attachment; filename=myfile.pdf'); 
print $content2; 
?>

就像我说的,我已经尝试了上面其他问题链接上的其他想法。现在它只存在于添加斜杠的版本上。

感谢您的帮助。

【问题讨论】:

  • 按您的要求添加代码

标签: php mysql fpdf


【解决方案1】:

试试这个。不要使用addslashes 来转义内容,而是尝试使用unpack 以二进制表示形式获取它:

$content = $pdf->Output("", "S"); //return the pdf file content as string
$data = unpack("H*hex", $content);

$sql = "update table set table_pdf= " . 0x".$data['hex']." . " " . 
    "where table_id = '188'";

为了检索数据,您应该能够只进行选择,然后输出内容,就像您已经在做的那样。

【讨论】:

  • 我试过你的建议,在第一个文件中,我完全使用了编码。至于检索文件,我不得不扩充代码以使其免受解析错误的影响。这就是我所做的。注意 0x 前面的 "。 $sql = "update rdngs_hdr set rdngs_hdr_pdf= " . "0x" . $data['hex']. " " . "where rdngs_hdr_id = '187'"; 但是,我仍然得到相同的结果错误。我认为我的添加不正确,否则您只需将 0x 放在 pdf= 之后和 ".有什么想法吗?
猜你喜欢
  • 2010-11-21
  • 2013-03-05
  • 1970-01-01
  • 2017-01-01
  • 2011-03-26
  • 1970-01-01
  • 1970-01-01
  • 2018-02-16
  • 2013-02-24
相关资源
最近更新 更多