一、 安全性比较低,把文本文件2.txt改成2.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; } }

  注:

       /*文件扩展名说明* 255216 jpg* 208207 doc xls ppt wps* 8075 docx pptx xlsx zip* 5150 txt* 8297 rar* 7790 exe* 3780 pdf      * * 4946/104116 txt* 7173        gif * 255216      jpg* 13780       png* 6677        bmp* 239187      txt,aspx,asp,sql* 208207      xls.doc.ppt* 6063        xml* 6033        htm,html* 4742        js* 8075        xlsx,zip,pptx,mmap,zip* 8297        rar   * 01          accdb,mdb* 7790        exe,dll* 5666        psd * 255254      rdp * 10056       bt种子 * 64101       bat * 4059        sgf    */

原文:http://www.admin10000.com/document/1862.html

转载于:https://www.cnblogs.com/tongxin/p/5780142.html

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

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

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

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

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

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

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

  4. JS判断上传文件类型

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

  5. PHP判断上传文件类型

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

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

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

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

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

  8. ASP.NET FileUp控件文件上传文件类型总结

    if (FileUp.PostedFile.ContentType == "image/pjpeg" || FileUp.PostedFile.ContentType == &qu ...

  9. php限制文件类型,限制上传文件类型程序代码_PHP教程

    我们一般不会在前段限制用户上传文件时的文件类,因为也没什么好的办法来限制只能使用像php,asp这类来操作,下面我来介绍利用js来定义type=file浏览上传时的文件类型与php中限制上传文件类型代 ...

最新文章

  1. 使用Python,OpenCV+OCR检测护照图像中的机器可读区域(MRZ Machine-Readable Zones)
  2. Tensorflow object detection API 搭建物体识别模型
  3. 项目经理生存现状(漫画)
  4. 实时流处理系统容错机制(一):综述
  5. VMware Data Recovery备份恢复vmware虚拟机
  6. 他在 B 站有 140 万粉丝,今天来免费带你学 Linux 了!
  7. python的字符串定界符可以使用_使用Template格式化Python字符串的方法
  8. 玩转springboot2.x之异步调用@Async
  9. SQL Server修改标识列方法 如自增列的批量化修改
  10. python支持向量机 股票_小蛇学python(4)利用SVM预测股票涨跌
  11. Apache与Subversion的简单配置(Apache SVN版本控制)
  12. 背包问题九讲 2.0 beta1.1
  13. Chrome 浏览器扩展神器暴力猴
  14. 3ds Max学习指南,基本知识与基本操作,常用快捷键汇总
  15. 进去服务器bios设置u盘启动不了系统,重装系统怎么进不了bios设置u盘启动
  16. 蓝牙耳机品牌推荐:2023年降噪蓝牙耳机性价比推荐
  17. java map不区分KEY的大小写
  18. 计算机主机不通电,电脑主机不通电无法开机怎么解决
  19. 白屏时间first paint 和可交互时间dom ready的关系
  20. 后台系统的权限控制与管理

热门文章

  1. 【面试题】类似国际象棋的棋子移动实现
  2. 实验记录 | Picard的安装
  3. eclipse启动问题:filed to load the jni shared library
  4. 《移动应用开发》实验——仿饿了么的APP
  5. .url格式的文件用什么姿势打开
  6. 2020 年 5 月全国程序员工资出炉!
  7. Excel 封装Api(Pandas 操作)
  8. DVWA登录login failed
  9. 人口金字塔:中国人口真的负增长了吗?
  10. 网络打印机驱动正常、设置正常的情况下能打印测试页、pdf、txt等文件但唯独office和wps软件无法使用打印机的问题解决办法