美观的单张上传控件 一个页面可以实例化多个
首先需要引用 js 和css
1 <!--上传控件--> 2 <script src="query.form.min.js"></script> 3 <link href="Img_List.css" rel="stylesheet" /> 4 <script src="Img_List.js"></script>
Img_List.js 如下:
1 /// <reference path="../../script/jquery-1.8.0.min.js" /> 2 //显示 3 function imgshow(obj) { 4 //$(obj).find("a").show(); 5 } 6 7 //隐藏 8 function imghide(obj) { 9 //$(obj).find("a").hide(); 10 } 11 12 //上传 13 function upload() { 14 $("#FileLoad").click(); 15 } 16 17 //删除 18 function imgdel(listId, FileId, hfId) { 19 20 $.post("/CommonModule/ashx/public.ashx?action=DelMessageImg&Files=" + $("#" + hfId).val(), function (result) { 21 if (result != "ok") 22 $.messager.alert("消息提示", "删除失败!"); 23 }); 24 var html = "<li><img src=\"/Themes/Images/jia.jpg\" style=\"height: 80px; width: 80px;\" /><input type=\"file\" id=\""+FileId+"\" class=\"input\" onchange=\"ImgUpload('"+FileId+"','"+hfId+"','"+listId+"');\" name=\""+FileId+"\" /></li>" 25 $("#"+listId).html(html); 26 } 27 28 //添加成功 29 function imgaddhtml(data, code,listId,fileId,hfId) { 30 var list = data.split(','); 31 var html = "<li onmouseover=\"imgshow(this)\" onmouseout=\"imghide(this);\">"; 32 html += "<a style=\"height:80px;width:80px;\" href=\"" + list[0] + "\" target=\"_blank\"><img src=\"" + list[0] + "\" imgs=\"" + list[0] + "\" code=\"" + code + "\" /></a><span onclick=\"imgdel('"+listId+"','"+fileId+"','"+hfId+"')\"></span></li>"; 33 $("#" + listId).html(html); 34 } 35 36 //图片文件上传 37 //uppath 上传空间id 38 //上传成功存放的图片路径的隐藏域id 39 //listId 显示图片的区域id 40 function ImgUpload(uppath, hndimg,listId) { 41 var sendUrl = "/CommonModule/ashx/Upload_Ajax.ashx?action=SingleFile&IsThumbnail=1&UpFilePath=" + uppath; 42 //开始提交 43 $("#form1").ajaxSubmit({ 44 beforeSubmit: function (formData, jqForm, options) { 45 //alert(1); 46 }, 47 success: function (data, textStatus) { 48 var list = $("#" + hndimg).val(); 49 $("#" + hndimg).val(data.msgbox); 50 imgaddhtml(data.msgbox, 0,listId,uppath,hndimg); 51 }, 52 error: function (data, status, e) { 53 alert("上传失败!"); 54 }, 55 url: sendUrl, 56 type: "post", 57 dataType: "json", 58 timeout: 600000 59 }); 60 };
Img_List.css 如下:
1 .img_list{ margin:0px; padding:0px; overflow:hidden;} 2 .img_list ul,.img_list ul li{ margin:0px; padding:0px;} 3 .img_list ul li{ float:left; list-style:none; position:relative; margin:5px 0px 0px 5px;} 4 .img_list ul li span 5 { position:absolute;top:3px; right:3px; width: 16px; height: 16px; opacity: 0.6;filter: alpha(opacity=60); margin: 0 0 0 2px; 6 vertical-align: top; background: url('/Themes/Images/panel_tools.png') no-repeat -16px 0px;} 7 .img_list ul li img{ width:80px; height:80px; cursor:pointer; position:relative; z-index:0;} 8 .img_list ul li .input{ width:80px; height:80px; cursor:pointer; position:relative; left:-100px;vertical-align: top; margin:0px; padding:0px; opacity:0;filter: alpha(opacity=0); }
panel_tools.png 如下:
jia.jpg 如下:
以上素材引用完成后 再看 前台页面代码:
1 <tr> 2 <th>图片1:</th> 3 <td> 4 <asp:Literal ID="ltrimg_list" runat="server"></asp:Literal> 5 <input type="hidden" runat="server" id="ImgPath" name="ImgPath" /> 6 <span style="color:blue;">建议尺寸(243*150)</span> 7 </td> 8 </tr> 9 10 <tr> 11 <th>图片2:</th> 12 <td> 13 <asp:Literal ID="Literal1" runat="server"></asp:Literal> 14 15 <input type="hidden" runat="server" id="hkImgPath" name="hkImgPath" /> 16 <span style="color:blue;">建议尺寸(243*150)</span> 17 </td> 18 </tr>
后台页面代码 (初始化控件) :
1 protected void Page_Load(object sender, EventArgs e) 2 { 3 4 if (!IsPostBack) 5 { 6 ltrimg_list.Text = UpLoad.showUploadFile("File1", "ImgPath", mfmodel.ImgPath, "img_list1"); 7 Literal1.Text = UpLoad.showUploadFile("File2", "hkImgPath", mfmodel.hkImgPath, "img_list2"); 8 9 } 10 }
生成上传控件方法
1 /// <summary> 2 /// 生成一个上传插件信息 3 /// </summary> 4 /// <param name="fileId">上传控件id</param> 5 /// <param name="hfId">隐藏域id用来保存上传的图片路径</param> 6 /// <param name="imgUrl">初始化显示的图片地址</param> 7 /// <param name="listId">上传成功之后用来显示上传图片的标签id</param> 8 /// <returns></returns> 9 public static string showUploadFile(string fileId, string hfId, string imgUrl, string listId) 10 { 11 string result = ""; 12 if (!string.IsNullOrEmpty(imgUrl)) 13 { 14 result = "<div class=\"img_list\"><ul id=\"" + listId + "\"><li onmouseover=\"imgshow(this)\" onmouseout=\"imghide(this);\"><a style=\"height:80px;width:80px;\" href=\"" + imgUrl + "\" target=\"_blank\"><img src=\"" + imgUrl + "\" imgs=\"" + imgUrl + "\" code=\"0\" /></a><span onclick=\"imgdel('" + listId + "','" + fileId + "','" + hfId + "')\"></span></li></ul></div>"; 15 } 16 else 17 { 18 result = "<div class=\"img_list\"><ul id=\"" + listId + "\"><li><img src=\"/Themes/Images/jia.jpg\" style=\"height: 80px; width: 80px;\" /><input type=\"file\" id=\"" + fileId + "\"class=\"input\" onchange=\"ImgUpload('" + fileId + "','" + hfId + "','" + listId + "')\" name=\"" + fileId + "\" /></li></ul></div>"; 19 } 20 21 return result; 22 }
上传文件的方法ashx:
1 using System; 2 using System.Collections; 3 using System.Collections.Generic; 4 using System.IO; 5 using System.Linq; 6 using System.Text.RegularExpressions; 7 using System.Web; 8 using DotNet.Kernel.Common; 9 using DotNet.Utilities; 10 using LitJson; 11 12 namespace BPMS.WEB.Admin.ashx 13 { 14 /// <summary> 15 /// Upload_Ajax 的摘要说明 16 /// </summary> 17 public class Upload_Ajax : IHttpHandler 18 { 19 20 public void ProcessRequest(HttpContext context) 21 { 22 //取得处事类型 23 string action = context.Request.QueryString["action"]; 24 25 switch (action) 26 { 27 case "SingleFile": //单文件 28 SingleFile(context); 29 break; 30 case "MultipleFile": //多文件 31 MultipleFile(context); 32 break; 33 case "AttachFile": //附件 34 AttachFile(context); 35 break; 36 case "EditorFile": //编辑器文件 37 EditorFile(context); 38 break; 39 40 } 41 } 42 43 44 45 #region 上传单文件处理=================================== 46 private void SingleFile(HttpContext context) 47 { 48 49 string _refilepath = context.Request.QueryString["ReFilePath"]; //取得返回的对象名称 50 string _upfilepath = context.Request.QueryString["UpFilePath"]; //取得上传的对象名称 51 string _delfile = context.Request.QueryString[_refilepath]; 52 HttpPostedFile _upfile = null; 53 try 54 { 55 _upfile = context.Request.Files[_upfilepath]; 56 } 57 catch (Exception e) 58 { 59 context.Response.Write("{\"msg\": \"0\", \"msgbox\": \"上传文件过大!\"}"); 60 context.Response.End(); 61 } 62 bool _iswater = false; //默认不打水印 63 bool _isthumbnail = false; //默认不生成缩略图 64 bool _isimage = false; 65 66 if (context.Request.QueryString["IsWater"] == "1") 67 _iswater = true; 68 if (context.Request.QueryString["IsThumbnail"] == "1") 69 _isthumbnail = true; 70 if (context.Request.QueryString["IsImage"] == "1") 71 _isimage = true; 72 73 if (_upfile == null) 74 { 75 context.Response.Write("{\"msg\": \"0\", \"msgbox\": \"请选择要上传文件!\"}"); 76 return; 77 } 78 UpLoad upFiles = new UpLoad(); 79 string msg = upFiles.fileSaveAs(_upfile, _isthumbnail, _iswater, _isimage); 80 //删除已存在的旧文件 81 Utils.DeleteUpFile(_delfile); 82 //返回成功信息 83 context.Response.Write(msg); 84 85 context.Response.End(); 86 } 87 #endregion 88 89 #region 上传多文件处理=================================== 90 private void MultipleFile(HttpContext context) 91 { 92 string _upfilepath = context.Request.QueryString["UpFilePath"]; //取得上传的对象名称 93 HttpPostedFile _upfile = context.Request.Files[_upfilepath]; 94 bool _iswater = false; //默认不打水印 95 bool _isthumbnail = false; //默认不生成缩略图 96 97 if (context.Request.QueryString["IsWater"] == "1") 98 _iswater = true; 99 if (context.Request.QueryString["IsThumbnail"] == "1") 100 _isthumbnail = true; 101 102 if (_upfile == null) 103 { 104 context.Response.Write("{\"msg\": \"0\", \"msgbox\": \"请选择要上传文件!\"}"); 105 return; 106 } 107 UpLoad upFiles = new UpLoad(); 108 string msg = upFiles.fileSaveAs(_upfile, _isthumbnail, _iswater); 109 //返回成功信息 110 context.Response.Write(msg); 111 context.Response.End(); 112 } 113 #endregion 114 115 #region 上传附件处理===================================== 116 private void AttachFile(HttpContext context) 117 { 118 string _upfilepath = context.Request.QueryString["UpFilePath"]; //取得上传的对象名称 119 HttpPostedFile _upfile = context.Request.Files[_upfilepath]; 120 bool _iswater = false; //默认不打水印 121 bool _isthumbnail = false; //默认不生成缩略图 122 123 if (_upfile == null) 124 { 125 context.Response.Write("{\"msg\": \"0\", \"msgbox\": \"请选择要上传文件!\"}"); 126 return; 127 } 128 UpLoad upFiles = new UpLoad(); 129 string msg = upFiles.fileSaveAs(_upfile, _isthumbnail, _iswater, false, true); 130 //返回成功信息 131 context.Response.Write(msg); 132 context.Response.End(); 133 } 134 #endregion 135 136 #region 编辑器上传处理=================================== 137 private void EditorFile(HttpContext context) 138 { 139 bool _iswater = false; //默认不打水印 140 if (context.Request.QueryString["IsWater"] == "1") 141 _iswater = true; 142 HttpPostedFile imgFile = context.Request.Files["imgFile"]; 143 if (imgFile == null) 144 { 145 showError(context, "请选择要上传文件!"); 146 return; 147 } 148 UpLoad upFiles = new UpLoad(); 149 string remsg = upFiles.fileSaveAs(imgFile, false, _iswater); 150 //string pattern = @"^{\s*msg:\s*(.*)\s*,\s*msgbox:\s*\""(.*)\""\s*}$"; //键名前和键值前后都允许出现空白字符 151 string pattern = @"^{\s*\""msg\"":\s*\""(.*)\""\s*,\s*\""msgbox\"":\s*\""(.*)\""\s*}$"; //键名前和键值前后都允许出现空白字符 152 Regex r = new Regex(pattern, RegexOptions.IgnoreCase); //正则表达式实例,不区分大小写 153 Match m = r.Match(remsg); //搜索匹配项 154 string msg = m.Groups[1].Value; //msg的值,正则表达式中第1个圆括号捕获的值 155 string msgbox = m.Groups[2].Value; //msgbox的值,正则表达式中第2个圆括号捕获的值 156 if (msg == "0") 157 { 158 showError(context, msgbox); 159 return; 160 } 161 Hashtable hash = new Hashtable(); 162 hash["error"] = 0; 163 hash["url"] = msgbox; 164 context.Response.AddHeader("Content-Type", "text/html; charset=UTF-8"); 165 166 string result = JsonMapper.ToJson(hash); 167 //result = result.Replace("[",""); 168 //result = result.Replace("]", ""); 169 context.Response.Write(result); 170 171 context.Response.End(); 172 173 } 174 //显示错误 175 private void showError(HttpContext context, string message) 176 { 177 Hashtable hash = new Hashtable(); 178 hash["error"] = 1; 179 hash["message"] = message; 180 context.Response.AddHeader("Content-Type", "text/html; charset=UTF-8"); 181 context.Response.Write(JsonMapper.ToJson(hash)); 182 context.Response.End(); 183 } 184 #endregion 185 186 187 188 #region Helper 189 public class NameSorter : IComparer 190 { 191 public int Compare(object x, object y) 192 { 193 if (x == null && y == null) 194 { 195 return 0; 196 } 197 if (x == null) 198 { 199 return -1; 200 } 201 if (y == null) 202 { 203 return 1; 204 } 205 FileInfo xInfo = new FileInfo(x.ToString()); 206 FileInfo yInfo = new FileInfo(y.ToString()); 207 208 return xInfo.FullName.CompareTo(yInfo.FullName); 209 } 210 } 211 212 public class SizeSorter : IComparer 213 { 214 public int Compare(object x, object y) 215 { 216 if (x == null && y == null) 217 { 218 return 0; 219 } 220 if (x == null) 221 { 222 return -1; 223 } 224 if (y == null) 225 { 226 return 1; 227 } 228 FileInfo xInfo = new FileInfo(x.ToString()); 229 FileInfo yInfo = new FileInfo(y.ToString()); 230 231 return xInfo.Length.CompareTo(yInfo.Length); 232 } 233 } 234 235 public class TypeSorter : IComparer 236 { 237 public int Compare(object x, object y) 238 { 239 if (x == null && y == null) 240 { 241 return 0; 242 } 243 if (x == null) 244 { 245 return -1; 246 } 247 if (y == null) 248 { 249 return 1; 250 } 251 FileInfo xInfo = new FileInfo(x.ToString()); 252 FileInfo yInfo = new FileInfo(y.ToString()); 253 254 return xInfo.Extension.CompareTo(yInfo.Extension); 255 } 256 } 257 258 #endregion 259 260 public bool IsReusable 261 { 262 get 263 { 264 return false; 265 } 266 } 267 } 268 }
1 using System; 2 using System.Collections; 3 using System.Collections.Generic; 4 using System.IO; 5 using System.Linq; 6 using System.Web; 7 using DotNet.Kernel.Common; 8 9 namespace BPMS.WEB 10 { 11 public class UpLoad 12 { 13 public UpLoad() 14 { 15 16 } 17 /// <summary> 18 /// 生成一个上传插件信息 19 /// </summary> 20 /// <param name="fileId">上传控件id</param> 21 /// <param name="hfId">隐藏域id用来保存上传的图片路径</param> 22 /// <param name="imgUrl">初始化显示的图片地址</param> 23 /// <param name="listId">上传成功之后用来显示上传图片的标签id</param> 24 /// <returns></returns> 25 public static string showUploadFile(string fileId, string hfId, string imgUrl, string listId) 26 { 27 string result = ""; 28 if (!string.IsNullOrEmpty(imgUrl)) 29 { 30 result = "<div class=\"img_list\"><ul id=\"" + listId + "\"><li onmouseover=\"imgshow(this)\" onmouseout=\"imghide(this);\"><a style=\"height:80px;width:80px;\" href=\"" + imgUrl + "\" target=\"_blank\"><img src=\"" + imgUrl + "\" imgs=\"" + imgUrl + "\" code=\"0\" /></a><span onclick=\"imgdel('" + listId + "','" + fileId + "','" + hfId + "')\"></span></li></ul></div>"; 31 } 32 else 33 { 34 result = "<div class=\"img_list\"><ul id=\"" + listId + "\"><li><img src=\"/Themes/Images/jia.jpg\" style=\"height: 80px; width: 80px;\" /><input type=\"file\" id=\"" + fileId + "\"class=\"input\" onchange=\"ImgUpload('" + fileId + "','" + hfId + "','" + listId + "')\" name=\"" + fileId + "\" /></li></ul></div>"; 35 } 36 37 return result; 38 } 39 #region 40 /// <summary> 41 /// 裁剪图片并保存 42 /// </summary> 43 public bool cropSaveAs(string fileName, string newFileName, int maxWidth, int maxHeight, int cropWidth, int cropHeight, int X, int Y) 44 { 45 string fileExt = Utils.GetFileExt(fileName); //文件扩展名,不含“.” 46 if (!IsImage(fileExt)) 47 { 48 return false; 49 } 50 string newFileDir = Utils.GetMapPath(newFileName.Substring(0, newFileName.LastIndexOf(@"/") + 1)); 51 //检查是否有该路径,没有则创建 52 if (!Directory.Exists(newFileDir)) 53 { 54 Directory.CreateDirectory(newFileDir); 55 } 56 try 57 { 58 string fileFullPath = Utils.GetMapPath(fileName); 59 string toFileFullPath = Utils.GetMapPath(newFileName); 60 return Thumbnail.MakeThumbnailImage(fileFullPath, toFileFullPath, 180, 180, cropWidth, cropHeight, X, Y); 61 } 62 catch 63 { 64 return false; 65 } 66 } 67 68 /// <summary> 69 /// 文件上传方法A 70 /// </summary> 71 /// <param name="postedFile">文件流</param> 72 /// <param name="isThumbnail">是否生成缩略图</param> 73 /// <param name="isWater">是否打水印</param> 74 /// <returns>服务器文件路径</returns> 75 public string fileSaveAs(HttpPostedFile postedFile, bool isThumbnail, bool isWater) 76 { 77 return fileSaveAs(postedFile, isThumbnail, isWater, false, false); 78 } 79 80 /// <summary> 81 /// 文件上传方法B 82 /// </summary> 83 /// <param name="postedFile">文件流</param> 84 /// <param name="isThumbnail">是否生成缩略图</param> 85 /// <param name="isWater">是否打水印</param> 86 /// <param name="isImage">是否必须上传图片</param> 87 /// <returns>服务器文件路径</returns> 88 public string fileSaveAs(HttpPostedFile postedFile, bool isThumbnail, bool isWater, bool _isImage) 89 { 90 return fileSaveAs(postedFile, isThumbnail, isWater, _isImage, false); 91 } 92 93 /// <summary> 94 /// 文件上传方法C 95 /// </summary> 96 /// <param name="postedFile">文件流</param> 97 /// <param name="isThumbnail">是否生成缩略图</param> 98 /// <param name="isWater">是否打水印</param> 99 /// <param name="isReOriginal">是否返回文件原名称</param> 100 /// <returns>服务器文件路径</returns> 101 public string fileSaveAs(HttpPostedFile postedFile, bool isThumbnail, bool isWater, bool _isImage, bool _isReOriginal) 102 { 103 try 104 { 105 string fileExt = Utils.GetFileExt(postedFile.FileName); //文件扩展名,不含“.” 106 string originalFileName = postedFile.FileName.Substring(postedFile.FileName.LastIndexOf(@"\") + 1); //取得文件原名 107 string fileName = Utils.GetRamCode() + "." + fileExt; //随机文件名 108 string dirPath = GetUpLoadPath(); //上传目录相对路径 109 110 //检查文件扩展名是否合法 111 if (!CheckFileExt(fileExt)) 112 { 113 return "{\"msg\": \"0\", \"msgbox\": \"不允许上传" + fileExt + "类型的文件!\"}"; 114 } 115 //检查是否必须上传图片 116 if (_isImage && !IsImage(fileExt)) 117 { 118 return "{\"msg\": \"0\", \"msgbox\": \"对不起,仅允许上传图片文件!\"}"; 119 } 120 //检查文件大小是否合法 121 if (!CheckFileSize(fileExt, postedFile.ContentLength)) 122 { 123 return "{\"msg\": \"0\", \"msgbox\": \"文件超过限制的大小啦!\"}"; 124 } 125 //获得要保存的文件路径 126 string serverFileName = dirPath + fileName; 127 string serverThumbnailFileName = dirPath + "small_" + fileName; 128 string returnFileName = serverFileName; 129 //物理完整路径 130 string toFileFullPath = Utils.GetMapPath(dirPath); 131 //检查有该路径是否就创建 132 if (!Directory.Exists(toFileFullPath)) 133 { 134 Directory.CreateDirectory(toFileFullPath); 135 } 136 //保存文件 137 postedFile.SaveAs(toFileFullPath + fileName); 138 //如果是图片,检查图片尺寸是否超出限制 139 if (IsImage(fileExt)) 140 { 141 Thumbnail.MakeThumbnailImage(toFileFullPath + fileName, toFileFullPath + fileName, 3000, 3000); 142 } 143 //是否生成缩略图 144 if (IsImage(fileExt) && isThumbnail) 145 { 146 Thumbnail.MakeThumbnailImage(toFileFullPath + fileName, toFileFullPath + "small_" + fileName, 150, 150, "R"); 147 // returnFileName += "," + serverThumbnailFileName; //返回缩略图,以逗号分隔开 148 } 149 //是否打图片水印 150 if (IsWaterMark(fileExt) && isWater) 151 { 152 //switch (this.siteConfig.watermarktype) 153 //{ 154 // case 1: 155 // WaterMark.AddImageSignText(serverFileName, serverFileName, 156 // this.siteConfig.watermarktext, this.siteConfig.watermarkposition, 157 // this.siteConfig.watermarkimgquality, this.siteConfig.watermarkfont, this.siteConfig.watermarkfontsize); 158 // break; 159 // case 2: 160 // WaterMark.AddImageSignPic(serverFileName, serverFileName, 161 // this.siteConfig.watermarkpic, this.siteConfig.watermarkposition, 162 // this.siteConfig.watermarkimgquality, this.siteConfig.watermarktransparency); 163 // break; 164 //} 165 } 166 //如果需要返回原文件名 167 if (_isReOriginal) 168 { 169 return "{\"msg\": \"1\", \"msgbox\": \"" + serverFileName + "\", mstitle: \"" + originalFileName + "\"}"; 170 } 171 return "{\"msg\": \"1\", \"msgbox\": \"" + returnFileName + "\"}"; 172 } 173 catch 174 { 175 return "{\"msg\": \"0\", \"msgbox\": \"上传过程中发生意外错误!\"}"; 176 } 177 } 178 179 180 #region 私有方法 181 182 /// <summary> 183 /// 返回上传目录相对路径 184 /// </summary> 185 /// <param name="fileName">上传文件名</param> 186 private string GetUpLoadPath() 187 { 188 //string path = "/Files/upload/"; //站点目录+上传目录 189 string path = "/upload/"; //站点目录+上传目录 190 path += DateTime.Now.ToString("yyyyMM") + "/" + DateTime.Now.ToString("dd"); 191 return path + "/"; 192 } 193 194 /// <summary> 195 /// 是否需要打水印 196 /// </summary> 197 /// <param name="_fileExt">文件扩展名,不含“.”</param> 198 private bool IsWaterMark(string _fileExt) 199 { 200 //判断是否开启水印 201 if (1 == 1) 202 { 203 //判断是否可以打水印的图片类型 204 ArrayList al = new ArrayList(); 205 al.Add("bmp"); 206 al.Add("jpeg"); 207 al.Add("jpg"); 208 al.Add("png"); 209 if (al.Contains(_fileExt.ToLower())) 210 { 211 return true; 212 } 213 } 214 return false; 215 } 216 217 /// <summary> 218 /// 是否为图片文件 219 /// </summary> 220 /// <param name="_fileExt">文件扩展名,不含“.”</param> 221 private bool IsImage(string _fileExt) 222 { 223 ArrayList al = new ArrayList(); 224 al.Add("bmp"); 225 al.Add("jpeg"); 226 al.Add("jpg"); 227 al.Add("gif"); 228 al.Add("png"); 229 if (al.Contains(_fileExt.ToLower())) 230 { 231 return true; 232 } 233 return false; 234 } 235 236 /// <summary> 237 /// 检查是否为合法的上传文件 238 /// </summary> 239 private bool CheckFileExt(string _fileExt) 240 { 241 //检查危险文件 242 string[] excExt = { "asp", "aspx", "php", "jsp", "htm", "html" }; 243 for (int i = 0; i < excExt.Length; i++) 244 { 245 if (excExt[i].ToLower() == _fileExt.ToLower()) 246 { 247 return false; 248 } 249 } 250 //检查合法文件 251 string[] allowExt = { "gif", "jpg", "png", "bmp", "rar", "zip", "doc", "xls", "txt" }; 252 for (int i = 0; i < allowExt.Length; i++) 253 { 254 if (allowExt[i].ToLower() == _fileExt.ToLower()) 255 { 256 return true; 257 } 258 } 259 return false; 260 } 261 262 /// <summary> 263 /// 检查文件大小是否合法 264 /// </summary> 265 /// <param name="_fileExt">文件扩展名,不含“.”</param> 266 /// <param name="_fileSize">文件大小(KB)</param> 267 private bool CheckFileSize(string _fileExt, int _fileSize) 268 { 269 //判断是否为图片文件 270 if (IsImage(_fileExt)) 271 { 272 if (_fileSize > 10000 * 10240) 273 { 274 return false; 275 } 276 } 277 else 278 { 279 if (_fileSize > 10000 * 10240) 280 { 281 return false; 282 } 283 } 284 return true; 285 } 286 287 #endregion 288 289 #endregion 290 } 291 }