C# 文件上传及下载
一、文件上传
首先创建一个简单的上传页面,如图:
然后,在后台编写文件上传方法:
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-%e6%96%87%e4%bb%b6%e4%b8%8a%e4%bc%a0%e5%8f%8a%e4%b8%8b%e8%bd%bd/
欢迎入群一起讨论