一个包含近4000条记录的表中,每条记录都有一个mediumblob字段,该字段包含与该记录关联的PDF报告。在MySQL Workbench和phpMyAdmin下,相关的DOCUMENT列都将数据显示为BLOB按钮或链接。在phpMyAdmin下,链接还指示Blob所包含数据的大小。
问题在于,在MySQL Workbench下单击Blob按钮/链接时,使用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文件?
如有任何帮助,我们将不胜感激。
2条答案
按热度按时间icomxhvb1#
根据我的假设和Isaac的建议,唯一的解决方案是能够与软件开发人员之一交谈。据了解,文件已使用第三方库压缩,并且在存储到数据库之前删除了文件头。使用的第三方库是Chilkat的版本2.0.50727。可从www.chilkatsoft.com获得。该版本似乎不再可用,但希望至少有一个较新的版本可以完成这项工作。再次感谢大家的投入和帮助。
uxhixvfz2#
根据注解中的讨论,您似乎需要参考原始源代码或咨询原始开发人员,以确定数据是如何存储的。
使用phpMyAdmin将mediumblob数据作为文件下载,在很多情况下会下载一个.bin文件,实际上我不记得它是如何确定内容类型的(例如,PNG文件将以.png扩展名下载,但大多数其他二进制文件在phpMyAdmin不确定扩展名时仅以.bin格式下载,包括PDF)。因此,您从phpMyAdmin看到的行为是预期的,也是正确的。但由于.bin文件在重命名为.pdf时无法正常工作,这意味着导入和上传可能出现了问题。
BLOB数据通常以一种非常标准化的方式存储,但您的数据似乎并不遵循这种方法。
如果我们不直接看到代码,我们就无法猜测存储数据时到底发生了什么,而只能是猜测。