• asp.net mvc ajax文件上传


    前台页面提交文件
    
    <!DOCTYPE html>
    
    <html>
    <head>
    <meta name="viewport" content="width=device-width" />
    <title>文件操作</title>
    </head>
    <body>
    <form id="upFileForm">
    <div style="margin:30px;">
    <span style="margin-right:10px;">上传文件</span><input type="file" name="UpFile" id="UpFile" style="12%;" />
    <input type="button" onclick="upFile()" value="确认上传" />
    </div>
    </form>
    
    <script src="~/Scripts/jquery-1.10.2.min.js"></script>
    <script src="~/Scripts/jquery.form.js"></script>
    
    <script>
    
    //上传文件
    function upFile() {
    var file = document.getElementById("UpFile").files[0];
    if (!file) {
    alert("请选择文件!");
    return;
    }
    var size = file.size / 1024 / 1024;
    if (size > 50) {
    alert("图片文件不能大于50M");
    return;
    }
    $("#upFileForm").ajaxSubmit({
    url: "/File/UploadFile",
    type: "post",
    dataType: "json",
    success: function (data) {
    if (data == "" || data == "0") {
    alert("上传失败");
    }
    if (data == "2") {
    alert("不支持上传该文件");
    } else {
    alert(JSON.stringify(data));
    }
    },
    error: function (aa) {
    alert(aa);
    }
    });
    }
    </script>
    
    </body>
    </html>
    
     
    
    后台接收和上传
    
    [HttpPost]
    public JsonResult UploadFile()
    {
      HttpRequest request = System.Web.HttpContext.Current.Request;
      HttpFileCollection FileCollect = request.Files;
      string path = "";//文件的完整路径
      //文件保存目录路径
      string imgPathName = DateTime.Now.ToString("yyyyMMdd");//以日期为文件存放的上层文件夹名
      string savePath = "/upload/file/" + imgPathName + "/";//文件存放的完整路径
      //如果文件路径不存在则创建文件夹
      if (!Directory.Exists(Server.MapPath(savePath)))
      {
        Directory.CreateDirectory(Server.MapPath(savePath));
      }
      //定义允许上传的文件扩展名
      Hashtable extTable = new Hashtable();
      extTable.Add("file", "doc,docx,xls,xlsx,ppt,htm,html,txt,zip,rar,gz,bz2");
    
      if (FileCollect.Count > 0)//如果集合的数量大于0,多文件上传情况 
      {
        foreach (string str in FileCollect)
        {
        HttpPostedFile imgFile = FileCollect[str];//用key获取单个文件对象HttpPostedFile 
        string fileName = imgFile.FileName;//获取文件名
        string fileExt = Path.GetExtension(fileName).ToLower();//获取文件后缀名
        //判断文件类型是否正确
        if (Array.IndexOf(((string)extTable["file"]).Split(','), fileExt.Substring(1).ToLower()) == -1)
        {
          //文件类型不正确
          return Json("2");
        }
        string imgName = DateTime.Now.ToString("yyyyMMddhhmmss");//文件别名
        string imgPath = savePath + imgName + "-" + imgFile.FileName;//构造文件保存路径 
        string AbsolutePath = Server.MapPath(imgPath);
        imgFile.SaveAs(AbsolutePath);//将上传的东西保存 
        path = imgPath;//获得文件完整路径并返回到前台页面
      }
        return Json(path);
      }
      else
      {
        //上传失败
        return Json("0");
      }
    }
  • 相关阅读:
    关于Linux测试题
    Linux常用命令按功能统一总结
    关于Eclipse的Save时的自定义操作
    关于产品版本英语缩写
    关于location.href几种用法的区别
    关于Java多态的总结.
    关于JDK中正则表达式
    关于JDK中的集合总结(三)
    关于JDK中的集合总结(二)
    关于JDK中的集合总结(一)
  • 原文地址:https://www.cnblogs.com/netlock/p/13238096.html
Copyright © 2020-2023  润新知