一、文件上传
首先创建一个简单的上传页面,如图:
然后,在后台编写文件上传方法:
1 /// <summary>
2 /// 上传文件
3 /// </summary>
4 /// <returns></returns>
5 public void FileUp()
6 {
7 //获取上传文件
8 var file = Request.Files["fileName"];
9 //根据上传文件名获取完整名称
10 var uploadfileName = file.FileName;
11 //设置文件保存到文件夹的路径 ("File"是这里保存文件夹)
12 string filePath = "/File/" + uploadfileName;
13 //获取文件的物理路径
14 string AbsolutePath = Server.MapPath(filePath);
15 //保存上传文件
16 file.SaveAs(AbsolutePath);
17 Response.Write("<script>alert('图片上传成 功');location.href='/Default/Index';</script>");
18 }
上传文件后,显示:
上传成功后,会弹出提示框,跳回上传页面.
二、文件下载
主页面形式可以多变,就不在演示,主要说下后端代码:
1 /// <summary>
2 /// 文件下载
3 /// </summary>
4 /// <param name="FileName">文件名称</param>
5 /// <returns></returns>
6 public ActionResult DownLoad(string FileName)
7 {
8 string fileName = FileName;//客户端保存的文件名
9 string filePath = Server.MapPath("/File/" + FileName);//路径
10
11 FileStream fs = new FileStream(filePath, FileMode.Open);//以字符流的形式下载文件
12 byte[] bytes = new byte[(int)fs.Length];
13 fs.Read(bytes, 0, bytes.Length);
14 fs.Close();
15 Response.ContentType = "application/octet-stream";
16
17 //通知浏览器下载文件而不是打开
18 Response.AddHeader("Content-Disposition", "attachment; filename=" + HttpUtility.UrlEncode(fileName, System.Text.Encoding.UTF8));
19 Response.BinaryWrite(bytes);
20 Response.Flush();
21 Response.End();
22 return Json("");
23 }
通过上述代码,即可完成文件页面下载.
参考文章:http://blog.ncmem.com/wordpress/2023/12/18/c-文件上传及下载/