ASP.NET 实现PDF文件下载[转]
本文介绍了一种在ASP.NET中下载文件的方法。
方法一:可能是最简单的、最短的方式:
1 Response.ContentType = "application/pdf";
2 Response.AppendHeader("Content-Disposition", "attachment; filename=MyFile.pdf");
3 Response.TransmitFile(Server.MapPath("~/Files/MyFile.pdf"));
4 Response.End();
第一步是设置文档内容的类型,上面的例子是下载一个.PDF格式的文件。下面是最常用的一些文档内容类型:
方法二:解决.PDF文件较大时,可能导致所下载的PDF文件无法打开的方案
1 protected void Button1_Click(object sender, EventArgs e)
2 {
3 string path;
4 try
5 {
6 path = Request.PhysicalApplicationPath + "/" + Session["pdfpath"].ToString() + "/PDF/" + Session["mlmc"].ToString() + ".pdf";
7 }
8 catch (Exception)
9 {
10 return;
11 }
12 System.IO.Stream iStream = null;
13 byte[] buffer = new Byte[10000];
14 int length;
15 long dataToRead;
16 string filename = Session["mlmc"].ToString() + ".pdf";
17
18 try
19 {
20 iStream = new System.IO.FileStream(path, System.IO.FileMode.Open, System.IO.FileAccess.Read, System.IO.FileShare.Read);
21 dataToRead = iStream.Length;
22 Response.Clear();
23 Response.ClearHeaders();
24 Response.ClearContent();
25 Response.ContentType = "application/pdf"; //文件类型
26 Response.AddHeader("Content-Length", dataToRead.ToString());//添加文件长度,进而显示进度
27 Response.AddHeader("Content-Disposition", "attachment; filename=" + HttpUtility.UrlEncode(filename, System.Text.Encoding.UTF8));
28 while (dataToRead > 0)
29 {
30 if (Response.IsClientConnected)
31 {
32 length = iStream.Read(buffer, 0, 10000);
33 Response.OutputStream.Write(buffer, 0, length);
34 Response.Flush();
35
36 buffer = new Byte[10000];
37 dataToRead = dataToRead - length;
38 }
39 else
40 {
41 dataToRead = -1;
42 }
43 }
44
45 }
46 catch (Exception ex)
47 {
48 Response.Write("文件下载时出现错误!");
49 }
50 finally
51 {
52 if (iStream != null)
53 {
54 iStream.Close();
55 }
56 //结束响应,否则将导致网页内容被输出到文件,进而文件无法打开
57 Response.End();
58 }
59 } 通过以上代码,可在浏览器中打开一个“打开/保存”对话框来下载并保存文件。
地址:http://www.cnblogs.com/lwenwen/archive/2013/06/05/3119256.htmlASP.NET 实现PDF文件下载[转]的更多相关文章
- ASP.NET 实现PDF文件下载
本文介绍了一种在ASP.NET中下载文件的方法. 方法一:可能是最简单的.最短的方式: Response.ContentType = "application/pdf"; Resp ...
- asp.net生成PDF文件 (1)
asp.net生成PDF文件 (1) 这个是例子是网上淘来的,哈哈,很有用的! 首先要到网上下载itextsharp.dll,然后添加引用,主程序如下: 1 2 3 4 5 6 7 8 9 10 11 ...
- pyspider示例代码七:自动登陆并获得PDF文件下载地址
自动登陆并获得PDF文件下载地址 #!/usr/bin/env python # -*- encoding: utf- -*- # Created on -- :: # Project: pdf_sp ...
- asp.net 实现pdf、swf等文档的浏览
一.pdf的浏览 可以借助于pdf.js插件完成,使用pdf.js的好处是不需要安装额外的插件(比如flash),是纯web的解决方案.插件的下载链接:http://mozilla.github.io ...
- asp.net生成PDF文件(一)
这个是例子是网上淘来的,哈哈,很有用的! 首先要到网上下载itextsharp.dll,然后添加引用,主程序如下: ? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 1 ...
- asp.net mvc 简单文件下载
文件下载,先获取文件的路径,在通过招到文件的存放地址,通过return File(path, "text/plain", Url.Encode(name));,可以直接下载,但是必 ...
- ASP.NET实现大文件下载
https://support.microsoft.com/zh-cn/kb/812406 http://www.cnblogs.com/luisliu/p/4253815.html 当我们的网站需要 ...
- asp.net 生成PDF方法
今天转博客园看到有人发表了一篇生成PFd的文章,准备自己也留一份准备以后用到的时候方便调用: 首先去itextsharp网站下载控件(https://sourceforge.net/projects/ ...
- itextsharp c# asp.net 生成 pdf 文件
一切的开始必须要有2个dll, 可以通过nuget 包xiazai, 关键字是itextsharp. using iTextSharp.text; using iTextSharp.text.pdf; ...
随机推荐
- 企业SQL笔试
Student(SID, Sname, Sage, Ssex) 学生表 Course(CID, Cname, TID) 课程表 SC(SID, CID, score) 成绩 ...
- 芯灵思Sinlinx A64开发板 Linux内核等待队列poll ---阻塞与非阻塞
开发平台 芯灵思Sinlinx A64 内存: 1GB 存储: 4GB 开发板详细参数 https://m.tb.cn/h.3wMaSKm 开发板交流群 641395230 阻塞:阻塞调用是指调用结果 ...
- stolon cloud native postgresql 高可用方案
stolon方案与patroni 类似,是一个新的pg ha 方案 包含的组件 keeper:它管理一个PostgreSQL实例,汇聚到由领导者sentinel计算的clusterview. sent ...
- 左耳听风-ARTS-第1周
Algorithm https://leetcode.com/problems/longest-common-prefix/ class Solution { public String longes ...
- docker nginx letsencrypt
https越来越流行了,但免费的证书一般是一年有效期.一般是够用了,但懒人都想一劳永逸, 有个免费证书颁发机构是letsencrypt.它是开源,并且完全免费的,它颁发的证书已经被几乎所有的浏览器所认 ...
- python中使用 C 类型的数组以及ctypes 的用法
Python 在 ctypes 中为我们提供了类似C语言的数据类型, 它的用途(我理解的)可能是: (1) 与 其他语言(如 C.Delphi 等)写的动态连接库DLL 进行交换数据,因为 pytho ...
- win2008安装并配置zabbix3.4 agent
agent 下载地址: https://www.zabbix.com/download_agents 下载解压后有2个文件夹,一个是bin,存放32位和64位执行程序,一个是conf目录存放着配置文件 ...
- C语言之二维数组与指针
二维数组: ][]; 二维数组实质上也就是一维数组,a[2][3]可看做一个2个元素的一维数组,这2个元素又是另一个数组,在内存中,它的排布如下: #include "stdio.h&quo ...
- Getting Started with XlsxWriter
下面是一些关于使用XlsxWriter模块的简单介绍. 安装XlsxWriter 下面的是几个安装XlsxWriter模块的方法: 1.使用Pip 使用pip 方式是最推荐的从PyPi安装Python ...
- JavaScript问题——在浏览器中的offsetLeft/offsetWidth等属性是什么?
原文链接http://www.cnblogs.com/xiaohuochai/p/5828369.html https://blog.csdn.net/u012532033/article/detai ...
