.NetMvc从http或本地下载pdf文件
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文件的更多相关文章
- 使用java的 htpUrlConnection post请求 下载pdf文件,然后输出到页面进行预览和下载
使用java的 htpUrlConnection post请求 下载pdf文件,然后输出到页面进行预览和下载 2018年06月07日 10:42:26 守望dfdfdf 阅读数:235 标签: jav ...
- 阿里云OSS下载pdf文件,并在pdf文件上添加水印
代码: 兵马未动,粮草先行 作者: 传说中的汽水枪 如有错误,请留言指正,欢迎一起探讨. 转载请注明出处. 公司要求从阿里云OSS下载pdf文件并且需要添加水印. 因此这里总结一下. 首先添加了一个F ...
- 知网下载pdf文件的方法
title: 知网下载pdf文件的方法 toc: false date: 2018-11-02 17:54:43 categories: methods tags: 知网 平时我们使用的是国内版的知网 ...
- 从七牛服务下载PDF文件
/** * 从七牛下载PDF文件 * @param request * @param response * @param exhiId * @throws MalformedURLException ...
- C# 下载PDF文件(http与ftp)
1.下载http模式的pdf文件(以ASP.NET为例,将PDF存在项目的目录下,可以通过http直接打开项目下的pdf文件) #region 调用本地文件使用返回pdfbyte数组 /// < ...
- 【转】Python编程: 多个PDF文件合并以及网页上自动下载PDF文件
1. 多个PDF文件合并1.1 需求描述有时候,我们下载了多个PDF文件, 但希望能把它们合并成一个PDF文件.例如:你下载的数个PDF文件资料或者电子发票,你可以使用python程序合并成一个PDF ...
- 项目中的那些事---下载pdf文件
最近做了一个下载pdf文档的需求,本以为使用HTML5中<a>标签的属性download就能简单搞定,不料IE竟然不支持这一简单粗暴的H5新特性,而是直接在网页中打开, 于是各种搜索之后得 ...
- android默认浏览器response下载PDF文件
下载出来的文件不是PDF,而是xxx.htm文件,原因是response的header配置有问题. android默认浏览器的情况下,header的配置应该写成.(java 为例) response. ...
- VB.NET服务器端令客户端下载PDF文件
后台JS调用另一个控件,通过SESSION传递sDocumentPath 控件后台代码如下 Response.Clear() '如果不清,则有可能将页面源码作为文件内容的一部分传递给用户 ...
随机推荐
- 应用启动失败,报错:The server experienced an unexpected error when processing the request
前言 在腾讯云TKE集群中部署服务的时候,预警服务,warn一直重启,经过查询日志发现了如下的错误 The server experienced an unexpected error when pr ...
- 如何快速构建React组件库
前言 俗话说:"麻雀虽小,五脏俱全",搭建一个组件库,知之非难,行之不易,涉及到的技术方方面面,犹如海面风平浪静,实则暗礁险滩,处处惊险- 目前团队内已经有较为成熟的 Vue 技术 ...
- MeteoInfoLab脚本示例:AVHRR HDF数据
这里演示读取和绘制AVHRR hdf格式数据,以sst(海表面温度)为例. 脚本程序: #Add data file f = addfile('D:/Temp/hdf/2006001-2006005. ...
- 发布MeteoInfo 1.2.4
在JLaTeXMath库(http://forge.scilab.org/index.php/p/jlatexmath/)的支持下,实现了利用LaTeX语法显示特殊符号和数学公式的功能.需要在字符串首 ...
- 【Linux编译环境的搭建】Linux都没有,怎么学Linux编程?
本文准备从0开始,一步步搭建一套属于自己的多节点Linux系统环境,这将是后续学Linux.用Linux.Linux环境编程.应用和项目部署.工具实验等一系列学习和实践的基石,希望对小伙伴们有帮助. ...
- 【树形DP】NOI2003 逃学的小孩
题目大意 题目链接 PS:可能出题人为了提高难度故意加了很多废话--实际上题目是很简单的 在一棵树上找3个点A.B.C,使AB+BC最大,且满足AC>AB. 样例输入 4 31 2 12 3 1 ...
- docker的常用操作之三:网络配置
一, docker安装后容器使用哪些网络类型? 在宿主机执行如下命令: [root@localhost liuhongdi]# docker network ls NETWORK ID NAME DR ...
- zabbix安装中文语言包及中文乱码的解决(zabbix5.0)
一,zabbix不能配置中文界面的问题: 1, zabbix5.0 系统安装后,web界面不能选择使用中文 系统提示: You are not able to choose some of the l ...
- Dubbo系列之 (七)网络层那些事(2)
辅助链接 Dubbo系列之 (一)SPI扩展 Dubbo系列之 (二)Registry注册中心-注册(1) Dubbo系列之 (三)Registry注册中心-注册(2) Dubbo系列之 (四)服务订 ...
- tr命令-转换和删除字符
tr 转换和删除字符 支持标准输入 格式 tr [OPTION]...SET1[SET2] Translate, squeeze, and/or delete characters from stan ...