龙盟编程博客 | 无障碍搜索 | 云盘搜索神器
快速搜索
主页 > web编程 > asp.net编程 >

简单ASP.NET判断上传文件文件类型的代码分析

时间:2009-12-21 11:47来源:未知 作者:admin 点击:
分享到:
本文使用ASP.NET上传文件,带有文件类型的判断,如何不附合的类型不能上传,直接上代码吧。 上传文件 Code [http://www.xueit.com] using System; using System.Data; using System.Configuration; using System.

本文使用ASP.NET上传文件,带有文件类型的判断,如何不附合的类型不能上传,直接上代码吧。

上传文件 Code [http://www.xueit.com]
using System; 
using System.Data; 
using System.Configuration; 
using System.Collections; 
using System.Web; 
using System.Web.Security; 
using System.Web.UI; 
using System.Web.UI.WebControls; 
using System.Web.UI.WebControls.WebParts; 
using System.Web.UI.HtmlControls; 

public partial class _Default : System.Web.UI.Page 
{ 
     protected void Page_Load(object sender, EventArgs e) 
     { 

     } 
     protected void bt_upload_Click(object sender, EventArgs e) 
     { 
         try 
         { 
             if (FileUpload1.PostedFile.FileName == "") 
             { 
                 this.lb_info.Text = "请选择文件!"; 
             } 
             else 
             { 
                 string filepath = FileUpload1.PostedFile.FileName; 
                 if (IsAllowedExtension(FileUpload1) == true) 
                 { 
                     string filename = filepath.Substring(filepath.LastIndexOf("")   1); 
                     string serverpath = Server.MapPath("images/")   filename; 
                     FileUpload1.PostedFile.SaveAs(serverpath); 
                     this.lb_info.Text = "上传成功!"; 
                 } 
                 else 
                 { 
                     this.lb_info.Text = "请上传图片"; 
                 } 
             } 
         } 
         catch (Exception error) 
         { 
             this.lb_info.Text = "上传发生错误!原因:"   error.ToString(); 
         } 
     } 
     public static bool IsAllowedExtension(FileUpload hifile) 
     { 
         System.IO.FileStream fs = new System.IO.FileStream(hifile.PostedFile.FileName, System.IO.FileMode.Open, System.IO.FileAccess.Read); 
         System.IO.BinaryReader r = new System.IO.BinaryReader(fs); 
         string fileclass = ""; 
         byte buffer; 
         try 
         { 
             buffer = r.ReadByte(); 
             fileclass = buffer.ToString(); 
             buffer = r.ReadByte(); 
             fileclass  = buffer.ToString(); 

         } 
         catch 
         { 
           
         } 
         r.Close(); 
         fs.Close(); 
         if (fileclass == "255216" || fileclass == "7173")//说明255216是jpg;7173是gif;6677是BMP,13780是PNG;7790是exe,8297是rar 
         { 
             return true; 
         } 
         else 
         { 
             return false; 
         } 
     }   
}

以上代码关键地方if (fileclass == "255216" || fileclass == "7173")//说明255216是jpg;7173是gif;6677是BMP,13780是PNG;7790是exe,8297是rar

上面的实现只是一种简单的方案,还有一种直接判断文件上传是不是图片的方法,本站有相关的文章。

精彩图集

赞助商链接