asp.net-html图片的上传
1,文件的上传存在一个非常致命的文件,要是上传病毒文件,可能会使你的系统崩溃
所以判断文件的类型的非常重要的。
不能单独与后缀名判断,下面展示一种webform类型的上传文件案例。
1,书写html语言
<html> <head></head> <body> <li class="l-fieldcontainer" fieldindex="14"> <ul> <li style="width:120px;text-align:right;">*企业营业执照:</li> <li id="mainform|14" style="width:100px;text-align:left;"> <div class="l-text" style="width: 98px;"> <input name="COMPANYLICENSE" validate="{"maxlength":300,"required":true}" class="l-text-field upper" style="width: 94px;" ligeruiid="COMPANYLICENSE" id="COMPANYLICENSE" type="text" /> </div></li> <li><img src="#" heigth="50px" id="updatePic" width="60px" /></li> <li> <form id="EditMenuForm" enctype="multipart/form-data"> <input name="MenuPic" id="MenuPic" type="file" /> <input name="btnUpload" id="btnUpload" value="上传" style="width:60px" type="button" /> <label style="color:red">支持png,jpg格式图片,大小不能超过2M,必须清晰可见</label> <label></label> </form></li> <li style="width:3px;"><span class="l-star">*</span></li> </ul></li> </body> </html>
书写javasecript
ajaxSubmit的js文件来自:
//上传图片 $('#btnUpload').click(function () { if ($("#MenuPic").val()) { //让表单异步的提交到后台。 $("#EditMenuForm").ajaxSubmit({ error: function (error) { alert(error); }, url: 'handler/validate.ashx', /*设置post提交到的页面*/ type: "post", /*设置表单以post方法提交*/ dataType: "text", /*设置返回值类型为文本*/ data: { "Action": "PIC" }, success: function (data) { if (data == "-1") { alert("图片大小不能超过2M"); return; } if (data == "-2") { alert("图片格式不正确,只支持png,jpg格式的图片"); return;} $("#MenuIcon").val(data); $("#updatePic").attr("src", data); liger.get("COMPANYLICENSE").setValue(data) $("#MenuPic").val(""); $("#UpdateInfo").text("上传成功!"); } }); } else { $.messager.alert("错误消息", "请选择合法图片!"); } })
书写后台管理系统
void ValidatePIC(HttpContext context) { //上传图片 try { var requestFile = context.Request.Files["MenuPic"]; string fname = "/lib/uploads/" + Guid.NewGuid().ToString() + System.IO.Path.GetExtension(requestFile.FileName); string path = context.Request.MapPath(fname); requestFile.SaveAs(path); #region 校验图片 FileStream fs = new FileStream(path, FileMode.Open, FileAccess.Read); if (fs.Length > 1024 * 1024*4) { context.Response.Write("-1"); File.Delete(path); //删除文件 return; } 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(); #endregion if (fileClass == "255216" || fileClass == "7173" || fileClass == "13780") { //255216是jpg;7173是gif;6677是BMP,13780是PNG;7790是exe,13780:png //Response.Write("图片可用"); //保存到数据库中 context.Response.Write(fname); } else { context.Response.Write("-2"); File.Delete(path); //删除文件 return; } } catch (Exception e) { context.Response.Write("-2"); LogManager.WriteLog("上传图片出错!" + e.Message); } }