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="{&quot;maxlength&quot;:300,&quot;required&quot;: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);
        }
    }

 

posted @ 2017-11-18 11:43  Restrain  阅读(272)  评论(0编辑  收藏  举报