0

我使用的 ORACLE 数据库以 BLOB 类型存储 PDF 或 ZIP 格式的文件。我想保存这些文件。但是,我不知道如何识别它什么时候是 PDF 什么时候是 ZIP?是否可以检查 BLOB 内部存储的文件格式?

下面是一个用于保存文件的简单 write_file 方法:

def write_file(data, filename):
    with open(filename, 'wb') as f:
        f.write(data)

在这里,我使用光标获取适当的 BLOB,并使用以下write_file方法保存文件:

firstRow = cur.fetchone()
write_file(firstRow[0].read(), "blah.zip")

如何识别什么时候是 zip 什么时候是 pdf?

4

1 回答 1

2

您可以尝试通过检查您读取的字节来检查文件签名。

据此:https ://en.wikipedia.org/wiki/List_of_file_signatures

1) zip 文件以“50 4B 03 04”或“50 4B 05 06”或“50 4B 07 08”开头

2) pdf 文件开头为:“25 50 44 46 2d”

因此,您可以检查前几个字节并检查它们是否等于文件签名 - 并据此确定文件类型。

于 2019-10-10T15:17:20.127 回答