我已经在二进制格式的数据库中存储了文件。现在我想下载这些文件,我没有在表中的任何列中存储文件的名称或扩展名或类型..只是二进制流。下载时可以从二进制流中找到扩展名吗?怎么样?
答案 0 :(得分:0)
某些类型的文件可以通过其第一个字节的内容进行识别(例如,EXE文件的第一个字节为MZ
,PNG文件为%PNG
),但这不是一个标准,并且编写一个程序,通过查看内容几乎不可能识别每种可能的文件类型。您最好的选择是搜索客户最常用文件的信息,创建一个包含可能扩展名的新列,然后编写一个自定义程序来检查此二进制字段的内容,然后编写扩展列(如果匹配是找到)。当然修复了编写二进制内容的主程序以填充扩展列
答案 1 :(得分:0)
如果你没有在db中保存大量文件,你可以创建一个后台工作者类,它通过db中的文件来创建,创建一个tmp文件并存储所需的fileinfo和相应的ID。你可以将它与Steves的答案结合起来,你的backgroundworker类可以尝试根据第一个字节来确定文件类型,如果需要,可以创建一个tmp文件..