zoukankan      html  css  js  c++  java
  • 基于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");
    }
    }

  • 相关阅读:
    973. K Closest Points to Origin
    919. Complete Binary Tree Inserter
    993. Cousins in Binary Tree
    20. Valid Parentheses
    141. Linked List Cycle
    912. Sort an Array
    各种排序方法总结
    509. Fibonacci Number
    374. Guess Number Higher or Lower
    238. Product of Array Except Self java solutions
  • 原文地址:https://www.cnblogs.com/wangsir1992/p/9290322.html
Copyright © 2011-2022 走看看