zoukankan      html  css  js  c++  java
  • 文件上传(表单,Ajax)、文件下载

    文件上传:

    表单方式:

    MVC:

    方法一、public ActionResult Upload2()
            {
                //获取要上传的文件名称及类型
                var fils = HttpContext.Request.Files[0];
                //文件名称分割成 名称和类型
                var temp = fils.FileName.Split('.');
                //获取类型
                var extendName = temp[temp.Length - 1];
                //设置储存路径
                var path = HttpContext.Server.MapPath("~/Filters/");
                //如果没有此路径
                if (!Directory.Exists(path))
                {
                    //创建路径
                    Directory.CreateDirectory(path);
                }
                //获取到时间格式的名称
                var name = DateTime.Now.ToFileTime() + "." + extendName;
                fils.SaveAs(Path.Combine(path, name));
                return Content("上传成功");
            }

    方法二、 public void Upload(HttpPostedFileBase file)
            {
               var fileName = file.FileName;
                var filePath = Server.MapPath(string.Format("~/{0}", "File"));
                file.SaveAs(Path.Combine(filePath, fileName));

                string sql = $"insert into Files values('{fileName}','**','{filePath}')";
                int i= DBHelper.ExecuteNonQuery(sql);
                if (i>0)
                {
                    //return Content("上传成功!");
                    Response.Write("<script>alert('上传成功!');location.href='/File/Index'</script>");
                }
                else
                {
                    Response.Write("<script>alert('上传失败!')</script>");
                }
            }
    form表单:
        <form action='@Url.Action("Upload","File")' method="post" enctype="multipart/form-data">
          <input id="Submit1" type="submit" value="提交" /><input name="file" type="file" />
        </form>
      
        <a href='@Url.Action("Download","File",new { fileName=item.FName})'>下载文件</a>
     
     
    Ajax方式:
           API:上传文件 控制器端
             public class FileOperationController : ApiController
            {
                [HttpPost]
                public FileResult UpLoad()
                {
                    return help.UpLoad();
                }
           }
     
     MVC的视图页:
       客户端
            <input type = "file" id="f1" />
            <input type = "button" value="aa" onclick="ff()"/>
     
            < script >
                function ff()
            {
                var formData = new FormData();
                var file = document.getElementById("f1").files[0];
                formData.append("fileInfo", file);
                   $.ajax({
                url: "https://localhost:44370/api/FileOperation/UpLoad",
                       type: "POST",
                        data: formData,
                        contentType: false,//必须false才会自动加上正确的Content-Type
                        processData: false,//必须false才会避开jQuery对 formdata 的默认处理,XMLHttpRequest会对 formdata 进行正确的处理
                       success: function(data) {
                       if (data.Code < 0)
                            alert(data.Msg)
                            else
                            alert(data.Url)
                        },
                        error: function(data) {
                        alert("上传失败!");
                    }
                });
            }
     
     
    文件下载:

    (1)返回filestream

     
           
       public FileStreamResult download()
          {
            string fileName = "aaa.txt";//客户端保存的文件名
            string filePath = Server.MapPath("~/Document/123.txt");//路径
            return File(new FileStream(filePath, FileMode.Open), "application/octet-stream",fileName);
    }
     

    其中://“text/plain”是文件MIME类型

    (2)返回file

       public FileResult download()
          {
              string filePath = Server.MapPath("~/Document/123.txt");//路径
              return File(filePath, "text/plain", "welcome.txt"); //welcome.txt是客户端保存的名字
          }
  • 相关阅读:
    [转]relative、absolute和float
    CSS 布局属性(display,float,clear,visibility,overflow,overflow-x,overflow-y)
    CSS 块状元素和内联元素
    CSS定位
    CSS实例
    jQuery简单实例
    [转]几种常见SQL分页方式
    MyBatis Mapper XML 文件
    MyBatis XML 映射配置文件
    MyBatis 入门
  • 原文地址:https://www.cnblogs.com/wxsdyz/p/13361638.html
Copyright © 2011-2022 走看看