校验文件真实类型方法:
1 /// <summary> 2 /// C#检测真实文件类型函数 3 /// </summary> 4 /// <param name="hifile"></param> 5 /// <returns></returns> 6 private bool IsAllowedExtension(HttpPostedFile hifile) 7 { 8 bool ret = false; 9 10 System.IO.FileStream fs = new System.IO.FileStream(hifile.FileName, System.IO.FileMode.Open, System.IO.FileAccess.Read); 11 System.IO.BinaryReader r = new System.IO.BinaryReader(fs); 12 string fileclass = ""; 13 byte buffer; 14 try 15 { 16 buffer = r.ReadByte(); 17 fileclass = buffer.ToString(); 18 buffer = r.ReadByte(); 19 fileclass += buffer.ToString(); 20 } 21 catch 22 { 23 return false; 24 } 25 r.Close(); 26 fs.Close(); 27 /*文件扩展名说明 28 *4946/104116 txt 29 *7173 gif 30 *255216 jpg 31 *13780 png 32 *6677 bmp 33 *239187 txt,aspx,asp,sql 34 *208207 xls.doc.ppt 35 *6063 xml 36 *6033 htm,html 37 *4742 js 38 *8075 xlsx,zip,pptx,mmap,zip 39 *8297 rar 40 *01 accdb,mdb 41 *7790 exe,dll 42 *5666 psd 43 *255254 rdp 44 *10056 bt种子 45 *64101 bat 46 *4059 sgf 47 */ 48 49 50 //String[] fileType = { "255216", "7173", "6677", "13780", "8297", "5549", "870", "87111", "8075" }; 51 52 //纯图片 53 String[] fileType = { 54 "7173", //gif 55 "255216", //jpg 56 "13780" //png 57 }; 58 59 for (int i = 0; i < fileType.Length; i++) 60 { 61 if (fileclass == fileType[i]) 62 { 63 ret = true; 64 break; 65 } 66 } 67 Response.Write(fileclass);//可以在这里输出你不知道的文件类型的扩展名 68 return ret; 69 }