.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() '如果不清,则有可能将页面源码作为文件内容的一部分传递给用户 ...
随机推荐
- 版本控制系统之基于httpd搭建私有git仓库
在上一篇博客中,我们主要聊到了git的基本工作原理和一些常用的git命令的使用:回顾请参考https://www.cnblogs.com/qiuhom-1874/p/13787701.html:今天我 ...
- Python基础笔记1-Python读写yaml文件(使用PyYAML库)
最近在搭建自动化测试项目过程中经常遇到yaml文件的读写,为了方便后续使用,决定记下笔记. 一,YAML 简介 YAML,Yet Another Markup Language的简写,通常用来编写项目 ...
- 多测师讲解selenium_alert弹框定位_高级讲师肖sir
from selenium import webdriverfrom time import sleepdrvier=webdriver.Chrome()url=r'F:\dcs\DCS课程安排\se ...
- 多测师讲解 _教师(必备)_高级讲师肖sir
教学心得1.备课要充分,防止第二天上课会出现一些突发情况2.上课要有自己的思路,不一定要按照课件上的讲3.上课气氛比较沉闷的时候,可以适当的开下玩笑,缓解大家的学习氛围4.讲课的时候提醒学员不要做笔记 ...
- 【学习笔记】Min-max 容斥
经常和概率期望题相结合. 对于全序集合 \(S\),有: \[\max S=\sum\limits_{T\subseteq S,T\not=\varnothing}(-1)^{\vert T\vert ...
- 第十三章 Linux三剑客之老二—sed
一.sed #擅长增删改查 替换 选项: -n #取消默认输出 -r #支持扩展正则使用 -i #改变文件内容 -e #允许多项编辑 内部指令: p #print 打印 d # 删除 排除 a ...
- Navigator 的使用方法
对象属性 属性 Navigator 说明 appCodeName 返回浏览器的代码名 appName 返回浏览器的名称 appVersion 返回浏览器的平台和版本信息 cookieEnabled 返 ...
- 存储系列1-openfiler开源存储管理平台实践
(一)openfiler介绍 Openfiler能把标准x86/64架构的系统变为一个更强大的NAS.SAN存储和IP存储网关,为管理员提供一个强大的管理平台,并能应付未来的存储需求.openfile ...
- 闭包 - Js函数笔记
闭包 当函数被保存到外部时,将会生成闭包 闭包会导致原有作用域链不释放,造成内存泄漏 类似的代码就叫闭包 闭包的运行作用域 代码 a被执行,b被定义并保存出来 a结束,b被执行时,a的执行期上下文指向 ...
- deployer服务器端的配置
虽然说是无侵入的部署工具,但是还是需要我们来做一些微小的配置的,因为出于安全考虑,我们一般不会开发 root 用户的 SSH 登录,而是使用其它用户,比如 Ubuntu 默认的 ubuntu 用户.我 ...