如何找出存储在数据库中以二进制格式的文件的扩展名(类型)

本文关键字:文件 扩展名 类型 格式 二进制 存储 何找出 数据库 | 更新日期: 2023-09-27 18:34:57

我以二进制格式将文件存储在数据库中。现在我想下载这些文件,我没有在表的任何列中存储文件的名称或扩展名或类型..只是二进制流。下载二进制流时可以从扩展中找到扩展名吗?如何?

如何找出存储在数据库中以二进制格式的文件的扩展名(类型)

某些类型的文件可以通过其第一个字节的内容识别(例如,EXE 文件具有MZ作为第一个字节,PNG 文件具有 %PNG (,但这几乎不是一个标准,编写一个可以通过查看内容来识别每种可能的文件类型的程序实际上是不可能的。最好的办法是搜索客户最常用的文件的信息,创建一个新列以包含可能的扩展名,然后编写一个自定义程序来检查此二进制字段的内容,然后编写扩展名列(如果找到匹配项(。当然修复了写入二进制内容以填充扩展列的主程序

如果你没有

在数据库中保存大量文件,你可以创建一个后台工人类,通过数据库中的文件进行迭代,创建一个tmp文件,并使用相应的ID存储所需的文件信息。你可以把它和Steves的答案结合起来,你的后台工人类可以尝试根据第一个字节确定文件类型,如果需要,创建一个tmp文件。