首页 > 编程语言 >C# 文件上传及下载

C# 文件上传及下载

时间:2023-12-18 14:37:47浏览次数:26  
标签:文件 string filePath C# 上传 Response 下载

一、文件上传

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

 

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

 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/

欢迎入群一起讨论

 

 

标签:文件,string,filePath,C#,上传,Response,下载
From: https://www.cnblogs.com/songsu/p/17911137.html

相关文章

  • C#的相关知识,封装一个泛型的数据库访问查询方法
    publicTGet<T>(intid)whereT:BaseModel{stringConnectionString="DataSource=DESKTOP-63QE7M1;Database=CustomerDB;UserID=sa;Password=sa123;MultipleActiveResultSets=True";Typetype=typeof(T);varpropList=type.GetProperties......
  • Linux 安装 Harbor Docker镜像仓库&&远程访问
    Harbor是为企业用户设计的容器镜像仓库开源项目,包括了权限管理(RBAC)、LDAP、审计、安全漏洞扫描、镜像验真、管理界面、自我注册、HA等企业必需的功能,同时针对中国用户的特点,设计镜像复制和中文支持等功能。下面介绍如何在Linux安装并且使用cpolar内网穿透工具实现远程访问Har......
  • Amazon CodeWhisperer 在 vscode 的应用
    文章作者:旧花阴CodeWhisperer是一款可以帮助程序员更快、更安全地编写代码的工具,可以在他们的开发环境中实时提供代码建议和推荐。亚马逊云科技发布的这款代码生成工具CodeWhisperer最大的优势就是对于个人用户免费。以在vscode为例,演示安装过程。亚马逊云科技开发者社区......
  • Java Spring Boot 集成 Swagger 生成 API文档(SpringDoc)
    在我们进行项目开发的时候,有些文档是必不可少的,或者也有利于自己查阅,比如API接口文档。在SpringBoot中通常有有个选择:springfoxspringdoc因为springfox和SpringBoot版本适配问题是个坑,这里我们选用更加友好的springDoc,而且用起来更顺手,很丝滑。以下是环境:Spring......
  • OPENWRT 软路由和集客1AC+3AP组网实例测试
    网络系统:=主路由系统:IntelJ3160运行coolsnowwolf的OpenWrtR22.4.1内核版本5.15.35=集客无线系统:http://file.cnrouter.com/==AC1台,千兆上行连接迅雷下载宝--刷集客AC控制器AC7621,IP:192.168.2.146==AP3台,均千兆上行连接到J3160软路由1台联想Y1S(单千兆口上行)   ......
  • docker容器自动重启命令
    在服务器意外断电或者重启的情况下,docker服务是关闭的一个状态,每次断电或者重启都要使用命令手动重启服务,但是每次都要手动命令重启,比较麻烦,因此根据要求设置docker服务自动重启。1、设置docker容器进行开机自动重启我们可以使用以下命令进行设置docker容器自动重启#docker服务设置......
  • 参会指南 |WAIC 2023零数科技产业区块链生态论坛专业观众线下参会指引
    2023年7月7日(周五)13:00-17:00,由赛迪区块链研究院指导,上海零数科技有限公司主办的“数实融合,智领未来”产业区块链生态论坛,将于上海世博中心518会议室举行。论坛拟邀政府领导、院士学者、企业代表等重磅嘉宾,聚焦区块链赋能产业创新变革与实践应用,推动数字经济与实体经济深度融合。线......
  • linux 使用 mwget 实现多线程下载
    mwget和curl/multicurl一样,m就是multi多线程的意思。mwget是wget的升级版,支持多线程下载【使用方法】gitclonehttps://github.com/rayylee/mwget.gitcdmwgetyum-yinstallpkg-configyum-yinstalllibssl-devyum-yinstallintltool./configuremake&&makeins......
  • 网页CAD(WEB CAD SDK)绘制的批注信息如何保存到图纸上
    前言用户在网页中浏览编辑DWG图纸之后,会在图纸上进行审图批注,批注的内容会保存到服务器或原图纸中,本章节我们讲一下保存批注信息的方法,如果你还不会创建一个在线浏览编辑CAD图纸的前端应用请参考使用MxDraw云图开发包的文档和mxcad库。在线功能测试:https://demo.mxdraw3d.com:30......
  • C#中CancellationToken和CancellationTokenSource用法
    C#中CancellationToken和CancellationTokenSource用法 之前做开发时,一直没注意这个东西,做了.netcore之后,发现CancellationToken用的越来越平凡了。这也难怪,原来.netframework使用异步的不是很多,而.netcore首推异步编程,到处可以看到Task的影子,而CancellationToken......