文档章节

C# 文件上传及下载

o
 osc_y8yehimr
发布于 2019/03/20 20:25
字数 344
阅读 0
收藏 0

一、文件上传

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

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

 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         }

通过上述代码,即可完成文件页面下载.

 

o
粉丝 0
博文 500
码字总数 0
作品 0
私信 提问
加载中
请先登录后再评论。

暂无文章

array_map函数在PHP类中调用内部方法简介

array_map函数在PHP类中调用内部方法简介 https://blog.csdn.net/h330531987/article/details/76034742

MikeMei
20分钟前
15
0
sonarqube扫描 c#项目 显示 this project is empty 解决扫描结果为空的问题

sonar7 以后版本,默认的 sonar-scanner 加 sonar-project.properties 配置文件,扫描c#的项目回出现,扫描不报错,但是显示结果为空. jenins 在linux 环境中要想扫描 c#项目必须使用 dotnet-son...

ksa呀桃花树旁的小怪兽
23分钟前
7
0
建造者模式Builder

一 概述 建造者模式:用于对复杂对象的建造,与工厂模式不同的是,建造者的目的在于把复杂构造过程从不同对象展现中抽离出来,使得同样的构造工序可以展现出不同的产品对象。 二 使用示例 2....

小明不觉小
25分钟前
5
0
如何复制字典并仅编辑副本 - How to copy a dictionary and only edit the copy

问题: Can someone please explain this to me? 有人可以向我解释一下吗? This doesn't make any sense to me. 这对我来说毫无意义。 I copy a dictionary into another and edit the seco......

fyin1314
26分钟前
9
0
Mac上使用Docker Desktop启动Kubernetes,踩坑后终于搞掂

1 前言 Kubernetes又简称k8s,是Google开源的容器集群管理系统,最近也是火热。闲来无事(为了发文),捣鼓了一下,在Mac上搭建Kubernetes,遇到一些坑,也记录一下。 另外,Docker相关的概念...

南瓜慢说
29分钟前
9
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部