C# net core 从文件流中获取文件头、匹配文件类型

以二进制方式读文件头的若干个字节,有个metatype
 

 

常用文件的文件头如下:

(以前六位为准) JPEG (jpg),文件头:FFD8FF

PNG (png),文件头:89504E47

GIF (gif),文件头:47494638

TIFF (tif),文件头:49492A00

Windows Bitmap (bmp),文件头:424D

CAD (dwg),文件头:41433130

Adobe Photoshop (psd),文件头:38425053

Rich Text Format (rtf),文件头:7B5C727466

XML (xml),文件头:3C3F786D6C

HTML (html),文件头:68746D6C3E

Email [thorough only] (eml),文件头:44656C69766572792D646174653A

Outlook Express (dbx),文件头:CFAD12FEC5FD746F

Outlook (pst),文件头:2142444E

MS Word/Excel (xls.or.doc),文件头:D0CF11E0

MS Access (mdb),文件头:5374616E64617264204A

WordPerfect (wpd),文件头:FF575043

Postscript (eps.or.ps),文件头:252150532D41646F6265

Adobe Acrobat (pdf),文件头:255044462D312E

Quicken (qdf),文件头:AC9EBD8F

Windows Password (pwl),文件头:E3828596

ZIP Archive (zip),文件头:504B0304

RAR Archive (rar),文件头:52617221

Wave (wav),文件头:57415645

AVI (avi),文件头:41564920

Real Audio (ram),文件头:2E7261FD

Real Media (rm),文件头:2E524D46

MPEG (mpg),文件头:000001BA

MPEG (mpg),文件头:000001B3

Quicktime (mov),文件头:6D6F6F76

Windows Media (asf),文件头:3026B2758E66CF11

MIDI (mid),文件头:4D546864 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
///
filetype  文件后缀。如.doc
downdata byte[]文件流
///public bool CheckFileheader(string filetype,byte[] downdata)
{
if(downdata == null || downdata.Count() <= 0)
return false;
StringBuilder sbmodel = new StringBuilder();
int filetitlecount = 4;
if(".jpeg,jpg".Contains(filetype))filetitlecount = 3;
for(int i = 0;i< filetitlecount;i++)
{
int v = downdata[i] & 0xFF;
string str16 = Convert.ToString(v,16).ToUpper();
sbmodel.Append(str16);
}
if(sbmodel.ToString() == "D0CF11E0" || sbmodel.ToString() == "504B0304" ||   sbmodel.ToString() == "504B34" )
return true;
else
return false;
}

本文来自博客园,作者:zwbsoft,转载请注明原文链接:https://www.cnblogs.com/zwbsoft/p/16401177.html

posted @   2333+  阅读(532)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 如何调用 DeepSeek 的自然语言处理 API 接口并集成到在线客服系统
· 【译】Visual Studio 中新的强大生产力特性
· 2025年我用 Compose 写了一个 Todo App
点击右上角即可分享
微信分享提示