1、帮助类

 1 public static class PdfHelper
2 {
3 #region 从http链接下载
4 public static void Download(string url, string name, System.Web.Mvc.Controller controller)
5 {
6 var bytes = GetByteByRemoteURL(url);
7 controller.Response.Charset = "UTF-8";
8 controller.Response.ContentType = "application/octet-stream";
9 controller.Response.ContentEncoding = Encoding.Default;
10 controller.Response.AddHeader("Content-Disposition", "attachment; filename=" + name.Replace(" ", "") + ".pdf");
11 controller.Response.BinaryWrite(bytes);
12 controller.Response.Flush();
13 controller.Response.End();
14 }
15 #endregion
16
17 #region 调用本地文件使用返回pdfbyte数组
18
19 /// <summary>
20 /// 调用本地文件使用返回pdfbyte数组
21 /// </summary>
22 /// <param name="srcPdfFile">‘D:\in2434341555551.pdf’</param>
23 /// <returns></returns>
24
25 public static byte[] GetSignaturePDFByte(string srcPdfFile)
26 {
27 using (FileStream fsRead = new FileStream(srcPdfFile, FileMode.Open, FileAccess.Read, FileShare.Read))
28 {
29 int fsLen = (int)fsRead.Length;
30 byte[] hebyte = new byte[fsLen];
31 fsRead.Read(hebyte, 0, hebyte.Length);
32 return hebyte;
33 }
34 }
35
36 #endregion 调用本地文件使用返回pdfbyte数组
37
38 #region 从网站上下载pdf,转化为字节流
39 /// <summary>
40 /// 从网站上下载pdf,转化为字节流
41 /// </summary>
42 /// <param name="srcPdfFile">文件地址:'https://******/group2/M00/00/04/wKj-mlpcoZ2IUbK5AACrpaV6k98AAAB6gAAAAAAAKu9562.pdf'</param>
43
44 /// <returns></returns>
45 public static Byte[] GetByteByRemoteURL(string srcPdfFile)
46 {
47 byte[] arraryByte;
48 HttpWebRequest req = (HttpWebRequest)HttpWebRequest.Create(srcPdfFile);
49 req.Method = "GET";
50 using (WebResponse wr = req.GetResponse())
51 {
52 StreamReader responseStream = new StreamReader(wr.GetResponseStream(), Encoding.UTF8);
53 int length = (int)wr.ContentLength;
54 byte[] bs = new byte[length];
55
56 HttpWebResponse response = wr as HttpWebResponse;
57 Stream stream = response.GetResponseStream();
58
59 //读取到内存
60 MemoryStream stmMemory = new MemoryStream();
61 byte[] buffer1 = new byte[length];
62 int i;
63 //将字节逐个放入到Byte 中
64 while ((i = stream.Read(buffer1, 0, buffer1.Length)) > 0)
65 {
66 stmMemory.Write(buffer1, 0, i);
67 }
68 arraryByte = stmMemory.ToArray();
69 stmMemory.Close();
70 }
71 return arraryByte;
72 }
73
74 #endregion 从网站上下载pdf,转化为字节流
75
76 }

2、调用方法

1 public ActionResult Down()
2 {
3 PdfHelper.Download("http链接", "导出文件名字", this);
4 return new EmptyResult();
5 }

3、前端使用

1  function Download() {
2 location.href = "/xx/down";
3 }

.NetMvc从http或本地下载pdf文件的更多相关文章

  1. 使用java的 htpUrlConnection post请求 下载pdf文件,然后输出到页面进行预览和下载

    使用java的 htpUrlConnection post请求 下载pdf文件,然后输出到页面进行预览和下载 2018年06月07日 10:42:26 守望dfdfdf 阅读数:235 标签: jav ...

  2. 阿里云OSS下载pdf文件,并在pdf文件上添加水印

    代码: 兵马未动,粮草先行 作者: 传说中的汽水枪 如有错误,请留言指正,欢迎一起探讨. 转载请注明出处. 公司要求从阿里云OSS下载pdf文件并且需要添加水印. 因此这里总结一下. 首先添加了一个F ...

  3. 知网下载pdf文件的方法

    title: 知网下载pdf文件的方法 toc: false date: 2018-11-02 17:54:43 categories: methods tags: 知网 平时我们使用的是国内版的知网 ...

  4. 从七牛服务下载PDF文件

    /** * 从七牛下载PDF文件 * @param request * @param response * @param exhiId * @throws MalformedURLException ...

  5. C# 下载PDF文件(http与ftp)

    1.下载http模式的pdf文件(以ASP.NET为例,将PDF存在项目的目录下,可以通过http直接打开项目下的pdf文件) #region 调用本地文件使用返回pdfbyte数组 /// < ...

  6. 【转】Python编程: 多个PDF文件合并以及网页上自动下载PDF文件

    1. 多个PDF文件合并1.1 需求描述有时候,我们下载了多个PDF文件, 但希望能把它们合并成一个PDF文件.例如:你下载的数个PDF文件资料或者电子发票,你可以使用python程序合并成一个PDF ...

  7. 项目中的那些事---下载pdf文件

    最近做了一个下载pdf文档的需求,本以为使用HTML5中<a>标签的属性download就能简单搞定,不料IE竟然不支持这一简单粗暴的H5新特性,而是直接在网页中打开, 于是各种搜索之后得 ...

  8. android默认浏览器response下载PDF文件

    下载出来的文件不是PDF,而是xxx.htm文件,原因是response的header配置有问题. android默认浏览器的情况下,header的配置应该写成.(java 为例) response. ...

  9. VB.NET服务器端令客户端下载PDF文件

    后台JS调用另一个控件,通过SESSION传递sDocumentPath 控件后台代码如下     Response.Clear() '如果不清,则有可能将页面源码作为文件内容的一部分传递给用户    ...

随机推荐

  1. 利用 yum 命令和 rpm 命令升级 Nginx 或者安装最新版本 Nginx

    方法一:使用 yum 命令升级 Nginx 1.在配置 YUM 仓库的目录(/etc/yum.repos.d/)下新增文件  nginx.repo vi /etc/yum.repos.d/nginx. ...

  2. shell-整数测试多范例多生产案例举例

    1. 整数测试举例范例1:整数条件测试举例 root@test-1 ~]# a1=10;a2=13 [root@test-1 ~]# echo $a1 $a2 10 13 [root@test-1 ~ ...

  3. mPDF的简单使用

    1. 基本使用 安装 1  在项目下composer文件中 添加 "mpdf/mpdf":"~7.1.9" 测试环境为Yii项目 其他框架composer安装大 ...

  4. 前端传递的json格式与SpringMVC接收实体类的对应关系

    这篇文章主要是帮助刚刚入行的猿猿尽快适应Restful风格的搬砖生活 @RequestBody注解 基本介绍:@RequestBody主要用来接收前端传递给后端的json字符串中的数据的(请求体中的数 ...

  5. SDN实验 3: Mininet 实验——测量路径的损耗率

    验 3:Mininet 实验--测量路径的损耗率 一.实验目的 在实验 2 的基础上进一步熟悉 Mininet 自定义拓扑脚本,以及与损耗率相关的设定:初步了解 Mininet 安装时自带的 POX ...

  6. .net core中的那些常用的日志框架(Serilog篇)

    前言 上文说到Nlog日志框架,感觉它功能已经很强大,今天给大家介绍一个很不错的日志框架Serilog,根据我的了解,感觉它最大的优势是,结构化日志,它输出的日志是Json的格式,如果你使用的是Mon ...

  7. java中的t怎么用

    <T> T表示返回值是一个泛型,传递啥,就返回啥类型的数据,而单独的T就是表示限制你传递的参数类型,这个案例中,通过一个泛型的返回方式,获取每一个集合中的第一个数据, 通过返回值<T ...

  8. day02 Pyhton学习

    1.昨日内容回顾 1.python是一门解释型,弱类型的高级编程语言 优点: 1.优雅简单明确 2.短小快,代码短,代码量小,开发效率高 缺点: 1.运行效率低(相对) 2.python解释器 Cpy ...

  9. python 递归求和

    例子: 1 mylist = [1,2,3,4,5] 2 def func(var): 3 if var == []: 4 print('列表为空') 5 return 0 6 return var[ ...

  10. 【树形DP】ZJOI2008 骑士

    题目内容 洛谷链接 有\(n\)位骑士,每个人的战力可能不同,并且每一个人都有且仅有一个憎恨的人,互相憎恨的人不能在同一队中. 求组合为一个骑士队的最大战斗力. PS:可以去看看题目背景学学历史(雾) ...