检测文件类型函数类:    
using System;    
using System.Collections.Generic;    
using System.Web.UI.WebControls;    
using System.IO;    
namespace 0x001.Pack    
{    
         public enum FileExtension    
        {    
                JPG = 255216,    
                GIF = 7173,    
                BMP = 6677,    
                PNG = 13780    
                // 255216 jpg;    
                // 7173 gif;    
                // 6677 bmp,    
                // 13780 png;    
                // 7790 exe dll,    
                // 8297 rar    
                // 6063 xml    
                // 6033 html    
                // 239187 aspx    
                // 117115 cs    
                // 119105 js    
                // 210187 txt    
                //255254 sql    
        }    
         public class FileValidation    
        {    
static bool IsAllowedExtension() static bool IsAllowedExtension(FileUpload fu, FileExtension[] fileEx)    
                {    
                        int fileLen = fu.PostedFile.ContentLength;    
                        byte[] imgArray = new byte[fileLen];    
                        fu.PostedFile.InputStream.Read(imgArray, 0, fileLen);    
                        MemoryStream ms = new MemoryStream(imgArray);    
                        System.IO.BinaryReader br = new System.IO.BinaryReader(ms);    
                         string fileclass = "";    
                        byte buffer;    
                        try    
                        {    
                                buffer = br.ReadByte();    
                                fileclass = buffer.ToString();    
                                buffer = br.ReadByte();    
                                fileclass += buffer.ToString();    
                        }    
                        catch    
                        {    
                        }    
                        br.Close();    
                        ms.Close();    
                        foreach (FileExtension fe in fileEx)    
                        {    
                                 if (Int32.Parse(fileclass) == (int)fe)    
                                        return true;    
                        }    
                        return false;    
                }    
        }    
}    
上传事件判断上传类型    
void btnUpload_Click() void btnUpload_Click(object sender, EventArgs e)    
{    
         string filename = "";    
         Boolean fileOK = false;    
         if (FileUpload1.HasFile)    
         {    
                 String fileExtension = System.IO.Path.GetExtension(FileUpload1.FileName).ToLower();    
                 String[] allowedExtensions = { ".gif", ".png", ".jpeg", ".jpg" };    
                 for (int i = 0; i < allowedExtensions.Length; i++)    
                 {    
                         if (fileExtension == allowedExtensions)    
                         {    
                                 fileOK = true;    
                         }    
                 }    
         }    
         FileExtension[] fe = { FileExtension.BMP, FileExtension.GIF, FileExtension.JPG, FileExtension.PNG };    
         if (fileOK && FileValidation.IsAllowedExtension(FileUpload1, fe))    
         {    
                 string fileExt = System.IO.Path.GetExtension(FileUpload1.FileName).ToLower();    
                 filename = "/Images/" + DateTime.Now.ToString( "yyyyMMddHHmmss") + fileExt;    
                 FileUpload1.PostedFile.SaveAs(Server.MapPath(filename));    
         }    
         else    
         {    
                LTP.Common.MessageBox.Show(this, "只支持以下格式的图片[url=file://rjpg,bmp,gif,png/]\\rJPG,BMP,GIF,PNG[/url]");    
                return;    
         }    
}    
以上方法测试通过,并在项目中应用!是目前最安全的防止上传非法文件的方法!