我开发了一个系统,可以将电子邮件解析并存储到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文件。只有前面的图像文件。
当我对数据进行硬编码并尝试我的代码时,它可以完美地运行。数据也不会被截断。
看来这不是记忆问题
如果有人能给我一个提示,请......?
提前谢谢了
在数据库中存储大数据是个坏主意,因为大多数情况下它会使你的服务器变慢..而你可以通过php脚本将你的pdf复制到一个文件夹中,然后在sql数据库中存储它的引用...
现在,您可以轻松地从数据库中读取您的pdf内容。
或者你可以检查一下
非常感谢@Shadow!我将字段修改为LONGBLOB,现在看起来工作正常! :-)