ASPを使用する.NETアップロードファイルの3種類の判断方法(接尾辞,MIME,データストリーム)

15009 ワード

 1             #region  、       ,     1.txt  1.jpg      ,          ,     ,              。

 2             Boolean fileOk = false;

 3             string path = Server.MapPath("~/images/");

 4             //          

 5             if (FileUpload1.HasFile)

 6             {

 7                 //        ,      

 8                 string fileExtension = System.IO.Path.GetExtension(FileUpload1.FileName).ToLower();

 9                 //      jpg gif  

10                 string[] allowExtension = { ".jpg", ".gif" };

11                 //                

12                 int j = 0;

13                 for (int i = 0; i < allowExtension.Length; i++)

14                 {

15                     if (fileExtension == allowExtension[i])

16                     {

17                         fileOk = true;

18                         return;

19                     }

20                     else

21                     {

22                         j++;

23                     }

24                 }

25                 if (j > 0)

26                 {

27                     Response.Write("<script>alert('       ');</script>");

28                     return;

29                 }

30             }

31             else

32             {

33                 Response.Write("<script>alert('        ');</script>");

34                 return;

35             }

36             //

37             if (fileOk)

38             {

39                 FileUpload1.PostedFile.SaveAs(path + FileUpload1.FileName);

40                 Response.Write("<script>alert('    ');</script>");

41             }

42             #endregion

 
 1             #region   、             MIME    。

 2             Boolean fileOk = false;

 3             string path = Server.MapPath("~/images/");

 4             //          

 5             if (FileUpload1.HasFile)

 6             {

 7                 //    MIME    

 8                 string type = this.FileUpload1.PostedFile.ContentType.ToLower();

 9                 if (type.Contains("image"))    //   MIME   "image/xxx",         。

10                 {

11                     fileOk = true;

12 

13                 }

14                 else

15                 {

16                     Response.Write("<script>alert('     ')</script>");

17                 }

18             }

19             else

20             {

21                 Response.Write("<script>alert('        ');</script>");

22             }

23             //

24             if (fileOk)

25             {

26                 FileUpload1.PostedFile.SaveAs(path + FileUpload1.FileName);

27                 Response.Write("<script>alert('    ');</script>");

28             }

29             #endregion

30         

 
 1        //             

 2         public static bool IsAllowedExtension(FileUpload hifile)

 3         {

 4             System.IO.FileStream fs = new System.IO.FileStream(hifile.PostedFile.FileName, System.IO.FileMode.Open, System.IO.FileAccess.Read);

 5             System.IO.BinaryReader r = new System.IO.BinaryReader(fs);

 6             string fileclass = "";

 7             //          .

 8             byte buffer;

 9             try

10             {

11                 buffer = r.ReadByte();

12                 fileclass = buffer.ToString();

13                 buffer = r.ReadByte();

14                 fileclass += buffer.ToString();

15 

16             }

17             catch

18             {

19 

20             }

21             r.Close();

22             fs.Close();

23             if (fileclass == "255216" || fileclass == "7173")//  255216 jpg;7173 gif;6677 BMP,13780 PNG;7790 exe,8297 rar

24             {

25                 return true;

26             }

27             else

28             {

29                 return false;

30             }

31 

32         }