MVC 实现下载功能主要借助于 File 属性:

//下载文件接口

public ActionResult GetTrackTempIsc(ICSModels icsModels)

{

bool flag = false;

string path = Server.MapPath("~/File/file.ics");

if (icsModels.IcsFMTTYPE.Contains("{1}br{2}"))

{

icsModels.IcsFMTTYPE = icsModels.IcsFMTTYPE.Replace("{1}br{2}", "<br/>");

}

var trackIsc = GetTempContent(path, icsModels);                       //字符流

byte[] bt = System.Text.Encoding.UTF8.GetBytes(trackIsc);

string fileName = DateTime.Now.ToString("yyyyMMddHHmmss") + ".ics";//客户端保存的文件名

//以字符流的形式下载文件

return File(bt, "application/vnd.ms-txt", fileName);

}

/// <summary>
        /// 读取文件内容
        /// </summary>
        public string GetTempContent(string tempPath, ICSModels icsModels)
        {
            StringBuilder content = new StringBuilder();
            if (System.IO.File.Exists(tempPath))
            {
                using (StreamReader sr = new StreamReader(tempPath, Encoding.GetEncoding("utf-8")))
                {
                    String srLine;
                    while ((srLine = sr.ReadLine()) != null)
                    {
                        content.AppendLine(srLine);
                    }
                }
                // string strContent = content.ToString();
                return ConvertTempContent(content.ToString(), icsModels);
            }
            return null;
        }
        /// <summary>
        /// 字符替换
        /// </summary>
        private string ConvertTempContent(string source, ICSModels icsModels)
        {
            if (source.Contains("#IcsCREATED#"))
                source = source.Replace("#IcsCREATED#", icsModels.IcsCREATED);
            return source;
        }

//PDF 文件下载

public ActionResult GetPdfFile(PdfDownModel pdfModel)

{

var pdfPath = Server.MapPath("~/PdfFile/outstanding.pdf");

PdfFileEditor fileEditor = new PdfFileEditor();

Document doc = new Document(pdfPath);

PdfContentEditor pdfContentEditor = new PdfContentEditor();

pdfContentEditor.BindPdf(doc);

pdfContentEditor.ReplaceText("Qi Liu", pdfModel.UserName);             //保存

var maPath = "~/pdfDown/" + pdfModel.UserName + ".pdf";

var docPath = Server.MapPath(maPath);

doc.Save(docPath);             //字符流

// byte[] bt = System.Text.Encoding.UTF8.GetBytes(docPath);

//string fileName = DateTime.Now.ToString("yyyyMMddHHmmss") + ".pdf";//客户端保存的文件名

// System.IO.File.Delete(docPath);

string fileName = pdfModel.UserName + ".pdf";//客户端保存的文件名             //以字符流的形式下载文件

return File(docPath, "application/pdf", fileName);

}

ASP.NET MVC5 之 客户端实现文件的下载的更多相关文章

  1. ASP.NET MVC5入门2之Ajax实现数据查询

    开发环境:VS2013 数据库:SQL Server2008R2 架构:ASP.NET MVC5 开发语言:C# 代码下载链接:http://download.csdn.net/detail/u010 ...

  2. asp.net mvc5 下载文件方法

    控制器自带的 FileContentResult 可以让我们很方便的返回文件到服务端,减少了很多步骤.用于下载文件的时候,像视频.文本.图片这种浏览器支持的文件,默认就会被浏览器打开.这时候想让它变成 ...

  3. ASP.NET MVC5基础 – MVC文件架构

    创建MVC项目 首先,我们使用Visual Studio2019创建一个MVC架构的应用程序.步骤如下:首先打开VS2019,在启动页选择[创建新项目].然后选择创建 ASP.NET Web 应用程序 ...

  4. 彻底解决asp.net mvc5.2.2:vs2013 cshtml视图文件报错(当前上下文中不存在名称“model”,ViewBag,Url)

    最近遇到一个奇葩的问题,在vs2013下cshtml视图文件报错,出现当前上下文中不存在名称“model”,ViewBag,Url等等),在视图中也没有智能提示了,用@model声明视图的model类 ...

  5. asp dotnet core 支持客户端上传文件

    本文告诉大家如何在 asp dotnet core 支持客户端上传文件 新建一个 asp dotnet core 程序,创建一个新的类,用于给客户端上传文件的信息 public class Kanaj ...

  6. [Asp.net MVC]Asp.net MVC5系列——在模型中添加验证规则

    目录 概述 在模型中添加验证规则 自定义验证规则 伙伴类的使用 总结 系列文章 [Asp.net MVC]Asp.net MVC5系列——第一个项目 [Asp.net MVC]Asp.net MVC5 ...

  7. [Asp.net MVC]Asp.net MVC5系列——第一个项目

    目录 概述 创建第一个项目 添加控制器 总结 概述 本教程是个人一步一步学习的总结,希望能帮到正在进入ASP.Net MVC5方向的朋友,个人也是准备进入ASP.NET MVC5领域,虽然艰辛,但是乐 ...

  8. [Asp.net MVC]Asp.net MVC5系列——添加视图

    目录 系列文章 概述 添加视图 总结 系列文章 [Asp.net MVC]Asp.net MVC5系列——第一个项目 概述 在这一部分我们添加一个新的控制器HelloWorldController类, ...

  9. ASP.NET MVC5 + EF6 入门教程 (6) View中的Razor使用

    文章来源: Slark.NET-博客园 http://www.cnblogs.com/slark/p/mvc-5-ef-6-get-started-model.html 上一节:ASP.NET MVC ...

随机推荐

  1. [NOIP2007] 提高组 洛谷P1098 字符串的展开

    题目描述 在初赛普及组的“阅读程序写结果”的问题中,我们曾给出一个字符串展开的例子:如果在输入的字符串中,含有类似于“d-h”或者“4-8”的字串,我们就把它当作一种简写,输出时,用连续递增的字母获数 ...

  2. set(集合)数据类型【七】

    一.概述:(类似于Java的Set,不允许有重复元素) 在Redis中,我们可以将Set类型看作为没有排序的字符集合,和List类型一样,我们也可以在该类型的数据值上执行添加.删除或判断某一元素是否存 ...

  3. IOS7状态栏StatusBar官方标准适配方法

    IOS7状态栏StatusBar官方标准适配方法 hello,大家好,ios7正式版已经发布,相信大家都在以各种方式来适配ios7. 如果你已经下载了xcode5,正准备使用,你会发现各种布局的改变. ...

  4. [bzoj1578][Usaco2009 Feb]Stock Market 股票市场_完全背包dp

    Stock Market 股票市场 bzoj-1578 Usaco-2009 Feb 题目大意:给定一个$S\times D$的大矩阵$T$,其中$T[i][j]$表示第i支股票第j天的价格.给定初始 ...

  5. Search Insert Position(二分查找)

    Given a sorted array and a target value, return the index if the target is found. If not, return the ...

  6. Spring基础入门(三)

    一.Spring的jdbcTemplate操作 (1)Spring是一站式框架,对于javaee三层,每一层都有解决技术. web层:springMVC service:spring的ioc dao层 ...

  7. Ubuntu 16.04中iptables的工具简介(iptables/iptables-restore/iptables-xml/iptables-apply/iptables-save)

    Ubuntu 16.04中安装的iptables版本为1.6.0,官方参考:http://www.linuxfromscratch.org/blfs/view/cvs/postlfs/iptables ...

  8. php7.3源码编译

    前置条件 autoconf:2.59+ automake:1.4+ libtool:1.4.x(除了1.4.2) re2c:0.13.4+ bison:建议1.281.35 或 1.75 依赖的库 y ...

  9. Hive之Order,Sort,Cluster and Distribute By

    测试数据 create table sort_test( id int, name string ) row format delimited fields terminated by '\t' li ...

  10. 手动脱RLPack壳实战

    作者:Fly2015 吾爱破解论坛培训第一课选修作业练习的第7题. 这个壳没听说过.可是脱起来比較简单.依据ESP定律就可以直达光明,Dump出原来的程序. 老规矩.首先对须要脱壳的程序进行查壳处理. ...