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. SpringSecurity原理

    一.认证的两种方式的介绍 1. 基于Session的认证方式 在之前的单体架构时代,我们认证成功之后都会将信息存入到Session中,然后响应给客户端的是对应的Session中数据的key,客户端会将 ...

  2. Vue.js 学习笔记之四:Vue 组件基础

    到目前为止,这个系列的笔记所展示的都是一些极为简单的单页面 Web 应用程序,并且页面上通常只有几个简单的交互元素.但在实际生产环境中,Web 应用程序的用户界面往往是由多个复杂的页面共同组成的.这时 ...

  3. 【8】进大厂必须掌握的面试题-Java面试-异常和线程

    Q1.错误和异常有什么区别? 错误是在运行时发生的不可恢复的情况.如OutOfMemory错误.这些JVM错误无法在运行时修复.尽管可以在catch块中捕获错误,但是应用程序的执行将停止并且无法恢复. ...

  4. 【UNR #2】UOJ拯救计划

    UOJ小清新题表 题目内容 UOJ链接 题面太长了(其实是我懒得改LaTeX了) 一句话题意: 给出 \(n\) 个点和 \(m\) 条边,对其进行染色,共 \(k\) 种颜色,要求同一条边两点颜色不 ...

  5. Martyr2项目实现——Number部分的问题求解 (1) Find Pi to Nth Digit

    Martyr2项目实现--Number部分的问题求解 (1) Find Pi to Nth Digit Find Pi to Nth Digit 问题描述: Find PI to the Nth Di ...

  6. Java 8 中的抽象类和接口到底有啥区别?

    上一篇栈长发了这篇<Java 8 有多牛逼?打破一切你对接口的认知!>,帮助许多人解开了疑惑,还有读者留言说两者还有啥区别,故引发了此篇: 在我们面试时也会经常遇到面试官问抽象类和接口的区 ...

  7. SonarQube 7.7 安装教程

    SonarQube 7.7 安装教程 一. CentOS设置 1. 更换阿里源 curl -o /etc/yum.repos.d/CentOS-Base.repo http://mirrors.ali ...

  8. Gitlab 11.9.1 高可用教程

    Gitlab 11.9.1 高可用教程 一. PostgreSQL数据迁移 由于默认Gitlab的安装会内置Postgres数据库,并且没有对外,所以我们需要通过设置对应的Gitlab的配置将其中的数 ...

  9. LinkageSel无限级联动下拉菜单

    http://files.cnblogs.com/files/chenghu/LinkageSel-master.zip

  10. tamcat7.0(安装文件下载)

    安装包:http://files.cnblogs.com/files/chenghu/apache-tomcat-7.0.27.rar http://files.cnblogs.com/files/c ...