C# 文件上传及下载

发布时间 2023-12-18 14:26:09作者: Xproer-松鼠

一、文件上传

首先创建一个简单的上传页面,如图:

 

然后,在后台编写文件上传方法:

 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/

欢迎入群一起讨论