ASP.NET中如何检测一个图片是否是真实图片 防范病毒上传
2013-04-11 09:44
549 查看
主要是用来判断客户端上传的图片是否为真实的图片,以防病毒侵入,保证上传的文件的安全。
主要代码如下:
需要引用using System.IO;
MVC 中的代码如下,在这里我返回的JSON格式,当然可以返回Content或其他:
主要代码如下:
需要引用using System.IO;
public void UploadFile() { try { HttpPostedFile postfile = Request.Files["file"]; string savepath = Server.MapPath("Image/" + postfile.FileName); postfile.SaveAs(savepath); FileStream fs = new FileStream(savepath, FileMode.Open, FileAccess.Read); BinaryReader reader = new BinaryReader(fs); string fileClass; byte buffer; byte[] b = new byte[2]; buffer = reader.ReadByte(); b[0] = buffer; fileClass = buffer.ToString(); buffer = reader.ReadByte(); b[1] = buffer; fileClass += buffer.ToString(); reader.Close(); fs.Close(); if (fileClass == "255216" || fileClass == "7173" || fileClass == "6677" || fileClass == "13780") { //255216是jpg;7173是gif;6677是BMP,13780是PNG;7790是exe,8297是rar //Response.Write("图片可用"); //保存到数据库中 } else { //Response.Write("图片非法"); File.Delete(savepath); //删除文件 return; } } catch (Exception) { //Response.Write("图片非法!"); return; throw; } }
MVC 中的代码如下,在这里我返回的JSON格式,当然可以返回Content或其他:
/// <summary> /// 上传头像 /// </summary> /// <param name="userId">用户编号</param> /// <returns>Json(-1表示系统异常,-2表示文件不合法)</returns> [HttpPost] public JsonResult UploadAvatar(string userId) { //上传头像 string folderPath = "/upload/avatar/"; //判断路径是否存在 if (!Directory.Exists(folderPath)) Directory.CreateDirectory(folderPath);//创建文件路径 HttpPostedFileBase uploadFile = Request.Files["avatars"]; if (uploadFile != null) { string oriFileName = uploadFile.FileName;//原始文件名 string fileName = userId + "_" + oriFileName; uploadFile.SaveAs(Server.MapPath(folderPath + fileName)); FileStream fs = new FileStream(Server.MapPath(folderPath + fileName), FileMode.Open, FileAccess.Read); BinaryReader reader = new BinaryReader(fs); string fileClass; byte buffer; byte[] b = new byte[2]; buffer = reader.ReadByte(); b[0] = buffer; fileClass = buffer.ToString(); buffer = reader.ReadByte(); b[1] = buffer; fileClass += buffer.ToString(); reader.Close(); fs.Close(); if (fileClass == "255216" || fileClass == "7173" || fileClass == "6677" || fileClass == "13780") { //255216是jpg;7173是gif;6677是BMP,13780是PNG;7790是exe,8297是rar //Response.Write("图片可用"); //保存到数据库中 } else { //Response.Write("图片非法"); FileInfo f = new FileInfo(Server.MapPath(folderPath + fileName)); f.Delete(); //删除文件 return Json(-2, JsonRequestBehavior.AllowGet); } return Json(Server.HtmlEncode(folderPath + fileName), JsonRequestBehavior.AllowGet); } return Json(-1, JsonRequestBehavior.AllowGet); }
相关文章推荐
- ASP.NET中如何检测一个图片是否是真实图片 防范病毒上传
- ASP.NET中上传图片检测其是否为真实的图片 防范病毒上传至服务器
- ASP.NET中检测图片真实否防范病毒上传
- 上传图片检测其是否为真实的图片 防范病毒上传至服务器
- asp.net上传图片并判断是否存在限制图片大小
- VC++ 如何检测某一个网卡是否连接上?net card connect detect
- 黑马程序员--asp.net有关如何批量上传图片
- asp.net 2.0中判断上传的图片是否符合规格
- sql server 关于表中只增标识问题 C# 实现自动化打开和关闭可执行文件(或 关闭停止与系统交互的可执行文件) ajaxfileupload插件上传图片功能,用MVC和aspx做后台各写了一个案例 将小写阿拉伯数字转换成大写的汉字, C# WinForm 中英文实现, 国际化实现的简单方法 ASP.NET Core 2 学习笔记(六)ASP.NET Core 2 学习笔记(三)
- [VB.NET]vb.net中如何检测一个已知的文件是否已经被打开或者被其他应用程序调用
- 如何使用asp.net中的控件将一个图片文件从一个目录传到另外一个目录下?
- asp.net C#如何上传指定路径的图片,不用FileUpload控件[转]
- asp.net FileUpload 判断上传文件是否为图片
- ASP.NET利用byte检测上传图片安全
- ASP.NET下如何上传图片到数据库,并且读出图片
- asp.net 文件上传验证是否是真正的图片格式
- asp.net 如何删除上传的图片
- 在Asp.net中图片如何实现上传
- asp.net 2.0中判断上传的图片是否符合规格
- asp.Net_图片上传的一个类库的源码