一、 安全性比较低,把文本文件1.txt改成1.jpg照样可以上传,但其实现方法容易理解,实现也简单,所以网上很多还是采取这种方法。Boolean fileOk = false;string path = Server.MapPath("~/images/");//判断是否已经选取文件if (FileUpload1.HasFile){//取得文件的扩展名,并转换成小写string fileExtension = System.IO.Path.GetExtension(FileUpload1.FileName).ToLower();//限定只能上传jpg和gif图片string[] allowExtension = { ".jpg", ".gif" };//对上传的文件的类型进行一个个匹对int j = 0;for (int i = 0; i < allowExtension.Length; i++){if (fileExtension == allowExtension[i]){fileOk = true;return;}else{j++;}}if (j > 0){Response.Write("<script>alert('文件格式不正确');</script>");return;}}else{Response.Write("<script>alert('你还没有选择文件');</script>");return;}//如果扩展名符合条件,则上传if (fileOk){FileUpload1.PostedFile.SaveAs(path + FileUpload1.FileName);Response.Write("<script>alert('上传成功');</script>");}二、不检测文件后缀而是检测文件MIME内容类型。Boolean fileOk = false;string path = Server.MapPath("~/images/");//判断是否已经选取文件if (FileUpload1.HasFile){//取得文件MIME内容类型string type = this.FileUpload1.PostedFile.ContentType.ToLower();if (type.Contains("image"))    //图片的MIME类型为"image/xxx",这里只判断是否图片。
               {fileOk = true;}else{Response.Write("<script>alert('格式不正确')</script>");}}else{Response.Write("<script>alert('你还没有选择文件');</script>");}//如果扩展名符合条件,则上传if (fileOk){FileUpload1.PostedFile.SaveAs(path + FileUpload1.FileName);Response.Write("<script>alert('上传成功');</script>");}三、可以实现真正意义上的文件类型判断try{//判断是否已经选取文件if (FileUpload1.HasFile){if (IsAllowedExtension(FileUpload1)){string path = Server.MapPath("~/images/");FileUpload1.PostedFile.SaveAs(path + FileUpload1.FileName);Response.Write("<script>alert('上传成功');</script>");}else{Response.Write("<script>alert('您只能上传jpg或者gif图片');</script>");}}else{Response.Write("<script>alert('你还没有选择文件');</script>");}}catch (Exception error){Response.Write(error.ToString());}#endregion}
//真正判断文件类型的关键函数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;}}

源自:http://www.cnblogs.com/shouce/p/5084567.html

ASP.net 判断上传文件类型的三种方法相关推荐

  1. 用ASP.net判断上传文件类型的三种方法

    一. 安全性比较低,把文本文件1.txt改成1.jpg照样可以上传,但其实现方法容易理解,实现也简单,所以网上很多还是采取这种方法. Boolean fileOk = false;           ...

  2. asp.net 判断上传文件类型的几种方法

    一. 安全性比较低,把文本文件2.txt改成2.jpg照样可以上传,但其实现方法容易理解,实现也简单,所以网上很多还是采取这种方法.只是简单的识别后缀名. Boolean fileOk = false ...

  3. [ASP.NET] 限制上传文件类型的两种方法(转)

    通常,为了防止因用户上传有害文件(如木马.黑客程序)引发的安全性问题,Web程序都会对用户允许上传的文件类型加以限制.而本文将要介绍的就是如何在ASP.NET应用程序中利用Web Control的内置 ...

  4. JS判断上传文件类型

    /*    * 判断图片类型    */     function checkImgType(ths){         if (ths.value == "") {        ...

  5. WebUploader上传文件夹的三种解决方案

    本人在2010年时使用swfupload为核心进行文件的批量上传的解决方案.见文章:WEB版一次选择多个文件进行批量上传(swfupload)的解决方案. 本人在2013年时使用plupload为核心 ...

  6. flask中使用FileField上传文件的两种方式+前端页面上传文件(flask三种上传文件方式)

    文章目录 上传文件方式一: 1.index.html文件: 2.主文件main.py: 上传文件方式二: 1.index2.html文件: 2.main.py文件: 上传文件方式三: 1.index3 ...

  7. PHP判断上传文件类型

    /*** 读取文件前几个字节 判断文件类型* @return string**/ function checkFileType($filename){$file=fopen($filename,'rb ...

  8. java判断是否安装了pdf_java判断上传文件是否为pdf java图像上传中如何判断是否是jpg格式...

    java怎么判断有没有上传文件 Java平台如何判断用户上传的文件是否是图片不要辜负了自己受过的苦难,这样善良又努力的一个你,一定会得到曾梦寐以分享的所有美好. if(typeof FileReade ...

  9. jquery fileupload 判断上传文件的类型

    //初始化,主要是设置上传参数,以及事件处理方法(回调函数) $("input[name='fileupload']").fileupload({ autoUpload:true, ...

最新文章

  1. 平方变换载波同步 matlab,matlab源码-costas载波同步环.docx
  2. python为什么这么小_同样是 Python,怎么区别这么大
  3. 栈应用_计算按运算符优先级分布的算式(代码、分析、汇编)
  4. mysql 日期滞后_如何滞后MySQL中的列?
  5. 海康USB摄像头----MV-CAO13-21UM工业摄像头的调用---python实现
  6. jdk1.8换成11,启动项目报错java.net.MalformedURLException: unknown protocol: jrt
  7. CentOS7下Mantis安装与配置
  8. 河南省旅游服务中心信息中心备份及集成
  9. Blender 建模案例一(1)
  10. Gitlab 12.9.4 的搭建部署及遇到的问题。
  11. 【js练习】for of循环与for in循环
  12. 13 1602液晶显示屏
  13. 腾讯2017暑期实习生编程题(三题)
  14. 体质极差的人如何从头开始恢复身体素质?
  15. 【求资源】Hadoop-native 3.3.1
  16. 日本机器人服获安全认证 为全球发布铺平道路
  17. 雪崩的时候,没有一片雪花是无辜的
  18. 完美的Linux之【navi】使用笔记
  19. 微信小程序echart图
  20. CellPress | 蛋白设计所带来的行业革命

热门文章

  1. 用FPGA实现视频中物体边缘二值化
  2. 我眼中的性能测试工程师
  3. 文本文件与二进制文件
  4. C#3.0新特性 和 Javascript
  5. union与struct的区别
  6. MyCat分布式数据库集群架构工作笔记0002---数据库中间件对比
  7. Linux工作笔记026---Centos7.3 yum提示Another app is currently holding the yum lock; waiting for it to exit.
  8. sql 单表/多表查询去除重复记录
  9. mysql数据库建order,group表时的错误
  10. 杭电1596find the safest road(spfa)