mvc开发模式下进行文件的下载

在这里主要是讲一下mvc的文件下载操作,现在本人是要做一个mvc的小项目,用的是mvc3.0,所以这里以mvc3.0讲解下吧,

其实code也非常简单,如果对下载这块儿还存在疑惑的code Man...  看完本篇小demo,定会捂嘴偷笑...  咱开始吧

第一步:在controller里的action这样定义

 public ActionResult DownLoad()
        {
            return new DownloadResult { VirtualPath = "~/content/Sth/testDemo.rar", FileDownloadName = "DownFileName.rar" };
        }

这里的 Virtualpath 表示你要设置下载的文件是哪个? 我这里是获取content文件夹下面的sth文件夹下面的testDemo.rar文件。然后设置FileDownloadName 为你要下载时保存的文件名字是什么,我这里设置的为下载时默认保存为DownFileName.rar

 

第二步:创建DownloadResult类,该类主要是设置下载时的一些必须的参数,code 如下:

 1  public class DownloadResult : ActionResult
 2     {
 3 
 4         public DownloadResult()
 5         {
 6         }
 7 
 8         public DownloadResult(string virtualPath)
 9         {
10             this.VirtualPath = virtualPath;
11         }
12 
13         public string VirtualPath
14         {
15             get;
16             set;
17         }
18 
19         public string FileDownloadName
20         {
21             get;
22             set;
23         }
24         public override void ExecuteResult(ControllerContext context)
25         {
26             if (!String.IsNullOrEmpty(FileDownloadName))
27             {
28                 context.HttpContext.Response.AddHeader("content-disposition",
29                   "attachment; filename=" + this.FileDownloadName);
30             }
31 
32             string filePath = context.HttpContext.Server.MapPath(this.VirtualPath);
33             context.HttpContext.Response.TransmitFile(filePath);
34         }
35     }

该类主要是对 VirtualPathFileDownloadName进行初始一下,很重要的一点是AddHeader("content-disposition","attachment; filename="+ this.FileDownloadName);

 this.FileDownloadName 是在action里new DownloadResult类时,传进来的参数, 下面的Server.MapPath是保存下载文件在什么地方,根据用户选择而定。

 

第三步:主要是在view里进行操作了,这里可以使用测试单元进行测试(我这里就直接在view里操作吧) code 如下:

 1 <!DOCTYPE html>
 2 <html>
 3 <head>
 4     <title>下载示例</title>
 5 </head>
 6 <body>
 7     <div>
 8         <a href=@Url.Content("/test/DownLoad")>下载</a>
 9     </div>
10 </body>
11 </html>

这里的 /test/downLoad 就是指向我第一步时创建的action,

相信大家 看到这里,对mvc模式下的下载应该掌握了吧。嘻嘻

   若能帮助到你,万分荣幸

  

转载于:https://www.cnblogs.com/oldcell/archive/2013/05/17/3083562.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值