首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在MySQL中从BLOB中读取pdf内容

在MySQL中从BLOB中读取pdf内容
EN

Stack Overflow用户
提问于 2019-03-29 13:08:18
回答 2查看 1.1K关注 0票数 0

我开发了一个系统,可以将电子邮件解析并存储到MySQL数据库中。我将附件作为JSON中的对象数组保存到MEDIUMBLOB字段中。一切都像预期的那样运作。至少在存钱的时候。当我试图读取附件时,我只得到图像,而不是pdf文件。

BLOB有以下“虚拟”内容:

代码语言:javascript
复制
[
{
"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)。

我进行了调试,但是当我从DB中获取数据BLOB时--在本例中--最后一个元素=pdf-文件没有返回。只有前面的图像文件。

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

好像这不是记忆问题

如果有人能给我个提示..。?

事先非常感谢

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2019-03-30 06:46:14

正如@Shadow所提到的:

Mediumblob仅为16 is。Base64极大地增加了数据的大小,所以即使原始二进制大小小于16 if,也可能存在一些数据截断。请包括从数据库存储和检索文件的代码。

我将字段修改为LONGBLOB,现在它似乎工作得很好!:-)

票数 0
EN

Stack Overflow用户

发布于 2019-03-29 13:40:15

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

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

或者你可以检查这个

PHP: Upload a Pdf to SQL Database

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/55418113

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档