在MySQL中从BLOB读取pdf内容

时间:2019-03-29 13:08:19

标签: php mysql pdf blob

我已经开发了一个系统,可以将电子邮件解析并存储到MySQL数据库中。 我将附件作为JSON中的对象数组保存到MEDIUMBLOB字段中。 一切都按预期进行。至少在保存时。 当我尝试阅读附件时,我只会获取图片,而不会获取pdf文件。

BLOB具有以下“虚拟”内容:

[
{
"filename":"img1.png", "ext":"png", "type": "image/png", "size":4096, 
"dispo":"inline", "cid":"123@abc", "content":"base64_encoded binary- 
data"
},
{
"filename":"pdf1.pdf", "ext":"pdf", "type": "application/pdf", 
"size":4096, "dispo":"attachment", "cid":null, 
"content":"base64_encoded binary-data"
}
]

附件如下: json_encode($ attachmentsDB,JSON_UNESCAPED_SLASHES | JSON_PRETTY_PRINT)。

我进行了调试,但是以某种方式从数据库中获取数据BLOB时-在这种情况下-最后一个元素= pdf文件未返回。仅前面的图像文件。

当我对数据进行硬编码并尝试我的代码时,它可以完美工作。 数据也不会被截断。

似乎不是内存问题

如果有人可以给我提示,请...?

非常感谢

2 个答案:

答案 0 :(得分:0)

在数据库中存储大数据不是一个好主意,因为在大多数情况下,这会使您的服务器运行缓慢。 相反,您可以通过php脚本将pdf复制到文件夹中,然后将其引用存储在sql数据库中...

现在,您可以轻松地从数据库中读取pdf内容。

或者您可以检查

PHP: Upload a Pdf to SQL Database

答案 1 :(得分:0)

非常感谢@Shadow!我将字段修改为LONGBLOB,现在看来一切正常! :-)