博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
ASP.NET MVC应用程序实现下载功能
阅读量:6987 次
发布时间:2019-06-27

本文共 724 字,大约阅读时间需要 2 分钟。

上次Insus.NET有在MVC应用程序实现了上传文件的功能《》  

有上传就有下载。本篇博文是把上传的文件以列表的形式显示View视图上,然后用户可以点击下载。

为了解更多的内容,建议你先看上链接一篇。

在MVC应用程序的Entity目录下,找到和打开FileLibraryEntity.cs,添加一个返回DataTable的方法:

 

#1写一个GetUploadFileByPrimarykey(FileLibrary fl)函数,返回DataTable,目的是传入主键,从数据库获取相关的文件信息。

#2 与#3修改的地方,与本篇没有关系,Insus.NET只是看到有代码冗余,随便重构而已。

接下来,自定义一个Result,叫DownloadResult吧,这个类有继承了ContentResult类,还需要override ExecuteResult()方法:

 

写控制器:

 

186行代码是视图,将用来显示下载列表。

191行代码,是下载方法。

#1标记,是接收参数。

#2标记,获取数据表中某一笔记录。

#3标记,获取旧文件名,和新文件名(即是存在应用程序目录中的文件名)。

#4标记,处理下载文件路径。

#5标记,获取下载文件的数据流。

 

下面的实现步骤,是创建视图FileDownloadDemo.cshtml:

 

呈现数据记录:

 

运行看看,它显示异常:

 

检查,发现传入的参数名与方法接收的名不一致:

 

fId改为id。再运行看看:

 

 

似乎正常。但是细心的网友也许发现最后一个链接,在下载时,文件名已经变成了"2"。中文文件名在下载时,有点异常。

没事的,Insus.NET知道问题在哪里:

 

 把#28行代码改为#29 #30行代码。

再运行看看:

 

 

转载地址:http://djqpl.baihongyu.com/

你可能感兴趣的文章
使用php函数ini_set()重新设置某个配置的设置值
查看>>
洛谷P2761 软件补丁问题(状压DP,SPFA)
查看>>
[osg][opengl]透视投影的参数Perspective
查看>>
总结!!!!!
查看>>
SpringBoot入门(三)——入口类解析
查看>>
Spring Boot系列——Spring Boot如何启动
查看>>
NIO之Charset类字符编码对象
查看>>
vue 父子组件传值的另外一种方式 provide inject
查看>>
关于ListBox在Grid中无法充满的问题
查看>>
【 Tomcat 】tomcat8.0 基本参数调优配置
查看>>
Android P的APP适配总结,让你快人一步
查看>>
Spring Boot 的 WEB 项目打包成的 JAR 包,打包成 docker 镜像基本步骤
查看>>
Table 'performance_schema.session_variables' doesn't exist
查看>>
WEB前端资源代码:PS记录
查看>>
WPF之托盘图标的设定
查看>>
查找字符是否存在列表中
查看>>
网络信息安全中最热门的果然是它
查看>>
C# -- 等待异步操作执行完成的方式 C# -- 使用委托 delegate 执行异步操作 JavaScript -- 原型:prototype的使用 DBHelper类连接数据库 MVC ...
查看>>
Git rebase使用
查看>>
Tetris in javascript[俄罗斯方块]
查看>>