如何检索存储为 MySQL mediumblob 的原始 pdf?
How to retrieve original pdf stored as MySQL mediumblob?
table 包含将近四千条记录,每条记录都有一个 mediumblob 字段,其中包含该记录的关联 PDF 报告。在 MySQL Workbench 和 phpMyAdmin 下,相关的 DOCUMENT 列将数据显示为 BLOB 按钮或 link。对于 phpMyAdmin,link 还指示 Blob 包含的数据大小。
问题是当单击 Blob button/link 时,在 MySQL Workbench 下使用 SQL 编辑器打开任何文件仅显示原始 Blob 数据在 phpMyAdmin th link 下,只允许将 Blob 数据保存为 .bin 文件,而不是将数据显示或保存为可查看的 PDF 文件。之前所有使用 PHP 检索原始 PDF 的尝试都失败了 - 请参阅相关的早期线程:Extract Pdf from MySql Dump Saved as Text.
table中的文件名字段显示所有存储的文件都是PDF文件。进一步的研究和测试表明 mediumblob 数据已存储为 application/octet-streams.
我的问题是如何将原始 PDF 检索为可读 PDF?从数据库中保存的 .bin 文件是否可以转换或用于恢复原始 PDF 文件?
如有任何帮助,我们将不胜感激。
根据评论中的讨论,听起来您需要参考原始源代码或咨询原始开发人员以确定数据的确切存储方式。
使用 phpMyAdmin 将 mediumblob 数据下载为文件在很多情况下会下载一个 .bin 文件,我实际上不记得它是如何确定内容类型的(例如,一个 PNG 文件将以 .png 扩展名下载,但是当 phpMyAdmin 不确定扩展名应该是什么时,大多数其他二进制文件只是作为 .bin 下载,包括 PDF)。因此,您从 phpMyAdmin 看到的行为是预期的并且是正确的,但是由于 .bin 文件在重命名为 .pdf 时不起作用,这意味着导入和上传可能出了问题。
BLOB 数据通常以非常标准化的方式存储,但您的数据似乎不遵循该方法。
如果我们不直接看到代码,就无法猜测存储数据到底发生了什么,只能猜测。
根据我的假设和 Isaac 的建议,唯一的解决方案是能够与其中一位软件开发人员交谈。据透露,文档已使用 third-party 库压缩,并且 header 在存储到数据库之前被删除。
使用的 third-party 库是 Chilkat 2.0.50727 版,可从 www.chilkatsoft.com 获得。该版本似乎不再可用,但希望至少有一个更新的版本可以完成这项工作。
再次感谢大家的投入和帮助。
table 包含将近四千条记录,每条记录都有一个 mediumblob 字段,其中包含该记录的关联 PDF 报告。在 MySQL Workbench 和 phpMyAdmin 下,相关的 DOCUMENT 列将数据显示为 BLOB 按钮或 link。对于 phpMyAdmin,link 还指示 Blob 包含的数据大小。
问题是当单击 Blob button/link 时,在 MySQL Workbench 下使用 SQL 编辑器打开任何文件仅显示原始 Blob 数据在 phpMyAdmin th link 下,只允许将 Blob 数据保存为 .bin 文件,而不是将数据显示或保存为可查看的 PDF 文件。之前所有使用 PHP 检索原始 PDF 的尝试都失败了 - 请参阅相关的早期线程:Extract Pdf from MySql Dump Saved as Text.
table中的文件名字段显示所有存储的文件都是PDF文件。进一步的研究和测试表明 mediumblob 数据已存储为 application/octet-streams.
我的问题是如何将原始 PDF 检索为可读 PDF?从数据库中保存的 .bin 文件是否可以转换或用于恢复原始 PDF 文件?
如有任何帮助,我们将不胜感激。
根据评论中的讨论,听起来您需要参考原始源代码或咨询原始开发人员以确定数据的确切存储方式。
使用 phpMyAdmin 将 mediumblob 数据下载为文件在很多情况下会下载一个 .bin 文件,我实际上不记得它是如何确定内容类型的(例如,一个 PNG 文件将以 .png 扩展名下载,但是当 phpMyAdmin 不确定扩展名应该是什么时,大多数其他二进制文件只是作为 .bin 下载,包括 PDF)。因此,您从 phpMyAdmin 看到的行为是预期的并且是正确的,但是由于 .bin 文件在重命名为 .pdf 时不起作用,这意味着导入和上传可能出了问题。
BLOB 数据通常以非常标准化的方式存储,但您的数据似乎不遵循该方法。
如果我们不直接看到代码,就无法猜测存储数据到底发生了什么,只能猜测。
根据我的假设和 Isaac 的建议,唯一的解决方案是能够与其中一位软件开发人员交谈。据透露,文档已使用 third-party 库压缩,并且 header 在存储到数据库之前被删除。 使用的 third-party 库是 Chilkat 2.0.50727 版,可从 www.chilkatsoft.com 获得。该版本似乎不再可用,但希望至少有一个更新的版本可以完成这项工作。 再次感谢大家的投入和帮助。