【发布时间】:2022-01-13 15:09:06
【问题描述】:
一个包含近四千条记录的表包括一个 mediumblob 字段,每个记录包含该记录的关联 PDF 报告。在 MySQL Workbench 和 phpMyAdmin 下,相关的 DOCUMENT 列将数据显示为 BLOB 按钮或链接。在 phpMyAdmin 的情况下,该链接还指示 Blob 包含的数据的大小。
问题是,当单击 Blob 按钮/链接时,在 MySQL Workbench 下使用 SQL 编辑器打开任何文件仅显示原始 Blob 数据,而在 phpMyAdmin 下,该链接仅允许将 Blob 数据保存为 . bin 文件,而不是将数据显示或保存为可查看的 PDF 文件。以前使用 PHP 检索原始 PDF 的所有尝试都失败了 - 请参阅相关的早期线程:Extract Pdf from MySql Dump Saved as Text。
表格中的文件名字段显示所有存储的文件都是 PDF 文件。进一步的研究和测试表明,mediumblob 数据已存储为 application/octet-streams。
我的问题是如何将原始 PDF 检索为可读 PDF?从数据库保存的.bin文件是否可以转换或用于恢复原始PDF文件?
任何帮助将不胜感激。
【问题讨论】:
-
尝试将 bin 重命名为 pdf,但我不抱希望,您是如何将数据插入数据库的?
-
@K J:谢谢你的回复。我已经从 cmd 行对 PDF 文件进行了测试编码和解码,并且可以确认 base64 编码文件的文本确实与 JVBER 有关系...该文件还解码回可读的 PDF。我开始怀疑这些文件是否作为电子邮件附件添加到数据库中,而 mediumblob 可能包括所有额外的开销。
-
@nbk:将文件扩展名从 .bin 更改为 .pdf 不允许打开文件。 Adobe Reader 只是拆分出以下错误:“Adobe Acrobat Reader 无法打开‘application.pdf’,因为它不是受支持的文件类型或文件已损坏(例如,它是作为电子邮件附件发送的,但'未正确解码)。”我没有插入数据。我正在尝试从过去提供的备份中恢复文件。
-
@K J:再次感谢您的反馈。相关数据本身只能追溯到 2017 年,所以没有那么旧。我曾假设 blob 将包含以通用格式编码的数据。我还试图联系其中一位软件开发人员,看看他/她是否能够阐明数据是如何编码的。
标签: mysql pdf phpmyadmin blob mysql-workbench