.net上传文件时获取文件的真实类型

转载 2013年12月04日 15:21:16
  1. using System;     
    using System.Collections.Generic;     
    using System.Linq;     
    using System.Web;     
    using System.Web.UI;     
    using System.Web.UI.WebControls;     
    using System.IO;     
        
    public partial class niunantest : System.Web.UI.Page     
    {     
        protected void Page_Load(object sender, EventArgs e)     
        {     
        
        }     
        protected void Button1_Click(object sender, EventArgs e)     
        {     
            string str = FileUpload1.PostedFile.ContentType;     
            Response.Write("文件类型:"+str);     
        
            string filename = "";     
        
            FileExtension[] fe = { FileExtension.GIF, FileExtension.JPG, FileExtension.PNG };     
            if (FileValidation.IsAllowedExtension(FileUpload1, fe))     
            {     
                string fileExt = System.IO.Path.GetExtension(FileUpload1.FileName).ToLower();     
                Response.Write("<br>验证通过!");     
                //filename = "/Images/" + DateTime.Now.ToString("yyyyMMddHHmmss") + fileExt;     
                //FileUpload1.PostedFile.SaveAs(Server.MapPath(filename));     
            }     
            else    
            {     
                Response.Write( "<br>验证不通过,只支持以下格式的图片:JPG,GIF,PNG");     
                return;     
            }     
        
        }     
        
        public enum FileExtension     
        {     
           
           JPG = 255216,
            GIF = 7173,
            BMP = 6677,
            PNG = 13780,
            RAR = 8297,
            jpg = 255216,
            exe = 7790,
            xml = 6063,
            html = 6033,
            aspx = 239187,
            cs = 117115,
            js = 119105,
            txt = 210187,
            sql = 255254
        
        }     
        
        public class FileValidation     
        {     
            public 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;     
            }     
        }     
    }    

.NET获取文件的MIME类型(Content Type)

获取文件的MIME类型有很多方法,闲话少絮,直接进入主题,下面是使用C#获取文件的MIME类型(Content Type)的各种方法。 第一种:这种获取MIME类型(Content Type)的方法...

asp.net(c#)上传文件时检测文类型方法小结

上传文件检测类型到目前为止我只看到过两种,第一种是检测文件的后缀名;第二种是检测文件的头部编码,不同类型文件的头部编码是不一样的(不知道这 样说恰当不,有错误希望大家指出),比如255216是jpg;...

asp.net(C#)检测真实文件类型【转载】

asp.net(C#)检测真实文件类型【字体:小 大 】网站曾经被上传一个.asa文件,修改后缀名为.rar然后逃过了我的简单后缀名判断。 结果网站被挂马,幸亏麻烦不大,现在已经加上真实文件类...

上传文件检测真实类型

#region 检测上传真实类型与后缀名是否匹配,是否在允许列表中,允许则上传返回上传路径 public bool IsAllowedExtension(HttpPostedFile ...
  • windxxf
  • windxxf
  • 2012年08月17日 12:22
  • 2365

【ASP.NET】文件上传与时间戳的获取

与ASP.NET其它所有控件一样,文件上传的实现同样有两种方式,一种是用服务端控件,另一种是利用客户端表单+.ashx的方式,当然,用Ajax完成文件上传也行,原理与客户端表单+.ashx的方式类似,...

c# asp.net Ext file fileUpload文件上传后台Request.Files获取不到解决办法

今天在搞这个ux.fileUpload控件的时候杯具了一天,后台总是获取不到Files对象,google了一下午未果,晚上回来再试的的时候成功了,我用的版本是3.3的,用的FormPanel提交,在他...

struts2开发环境中,enctype="multipart/form-data"上传文件时,request.getInputStream()为null的原因(转http://topic.csdn.net/u/20101210/11/78454a19-7

struts2开发环境中,通过设置enctype="multipart/form-data"上传文件时,在另一个jsp页面中通过request.getInputStream()手动获取二进制流结果为n...
  • fjfdszj
  • fjfdszj
  • 2011年01月06日 10:19
  • 2794
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:.net上传文件时获取文件的真实类型
举报原因:
原因补充:

(最多只允许输入30个字)