我已经以二进制格式将文件存储在数据库中。现在我想下载这些文件,我没有在表的任何列中存储文件的名称或扩展名或类型。只是二进制流。下载时可以从二进制流中找出扩展名吗?如何?
问问题
809 次
2 回答
0
如果您没有在数据库中保存大量文件,您可以创建一个后台工作程序类,该类遍历您的数据库中的文件,创建一个 tmp 文件并存储所需的具有相应 ID 的文件信息。您可以将其与 Steves 的答案结合使用,您的 backgroundworker 类可以尝试根据第一个字节确定文件类型,如果需要,创建一个 tmp 文件。
于 2013-10-12T11:31:10.140 回答
0
某些类型的文件可以通过它们的第一个字节的内容来识别(例如,EXE 文件有MZ
第一个字节,PNG 文件有%PNG
),但这几乎不是一个标准,编写一个可以识别的程序通过查看内容来查看每种可能的文件类型实际上是不可能的。最好的办法是搜索客户最常用文件的信息,创建一个新列来包含可能的扩展名,然后编写一个自定义程序来检查这个二进制字段的内容,然后编写扩展列(如果匹配是成立)。当然修复写入二进制内容的主程序也填充扩展列
于 2013-10-12T08:48:38.870 回答