ASP.NET 实现PDF文件下载
2014-03-28 15:18
357 查看
本文介绍了一种在ASP.NET中下载文件的方法。 方法一:可能是最简单的、最短的方式:
Response.ContentType = "application/pdf"; Response.AppendHeader("Content-Disposition", "attachment; filename=MyFile.pdf"); Response.TransmitFile(Server.MapPath("~/Files/MyFile.pdf")); Response.End();
第一步是设置文档内容的类型,上面的例子是下载一个.PDF格式的文件。下面是最常用的一些文档内容类型:
.htm, .html Response.ContentType = "text/HTML";
.txt Response.ContentType = "text/plain";
.doc, .rtf, .docx Response.ContentType = "Application/msword";
.xls, .xlsx Response.ContentType = "Application/x-msexcel";
.jpg, .jpeg Response.ContentType = "image/jpeg";
.gif Response.ContentType = "image/GIF";
.pdf Response.ContentType = "application/pdf";
方法二:解决.PDF文件较大时,可能导致所下载的PDF文件无法打开的方案
protected void Button1_Click(object sender, EventArgs e) { string path; try { path = Request.PhysicalApplicationPath + "/" + Session["pdfpath"].ToString() + "/PDF/" + Session["mlmc"].ToString() + ".pdf"; } catch (Exception) { return; } System.IO.Stream iStream = null; byte[] buffer = new Byte[10000]; int length; long dataToRead; string filename = Session["mlmc"].ToString() + ".pdf"; try { iStream = new System.IO.FileStream(path, System.IO.FileMode.Open, System.IO.FileAccess.Read, System.IO.FileShare.Read); dataToRead = iStream.Length; Response.Clear(); Response.ClearHeaders(); Response.ClearContent(); Response.ContentType = "application/pdf"; //文件类型 Response.AddHeader("Content-Length", dataToRead.ToString());//添加文件长度,进而显示进度 Response.AddHeader("Content-Disposition", "attachment; filename=" + HttpUtility.UrlEncode(filename, System.Text.Encoding.UTF8)); while (dataToRead > 0) { if (Response.IsClientConnected) { length = iStream.Read(buffer, 0, 10000); Response.OutputStream.Write(buffer, 0, length); Response.Flush(); buffer = new Byte[10000]; dataToRead = dataToRead - length; } else { dataToRead = -1; } } } catch (Exception ex) { Response.Write("文件下载时出现错误!"); } finally { if (iStream != null) { iStream.Close(); } //结束响应,否则将导致网页内容被输出到文件,进而文件无法打开 Response.End(); } } 通过以上代码,可在浏览器中打开一个“打开/保存”对话框来下载并保存文件。
相关文章推荐
- Asp.net 实现PDF文件下载后关闭页面
- ASP.NET 实现PDF文件下载
- ASP.NET 实现PDF文件下载[转]
- ASP.NET 实现PDF文件下载
- Asp.net 实现PDF文件下载
- Asp.net实现MVC处理文件的上传下载功能实例教程
- ASP.NET实现文件的上传与下载(包括用数据库存取文件)
- Asp.net(c#)实现多线程断点续传下载大文件
- ASP.Net 下载大文件的实现 (转)
- iOS开发之结合asp.net webservice实现文件上传下载
- 怎样在asp.net中用一般处理文件ashx实现下载功能
- ASP.NET中实现文件的保护性下载基础篇
- Asp.net 实现断点续传 下载大文件
- ASP.NET实现从服务器下载文件
- Asp.net 2.0 用 FileUpload 控件实现多文件上传 用户控件(示例代码下载).NET技术
- 实用模块:Asp.net实现的树形管理界面(支持zip文件上传和zip文件下载)
- asp.net中下载文件的实现方法
- Asp.net 2.0 用 FileUpload 控件实现多文件上传 用户控件(示例代码下载)
- ADO.NET .net core2.0添加json文件并转化成类注入控制器使用 简单了解 iTextSharp实现HTML to PDF ASP.NET MVC 中 Autofac依赖注入DI 控制反转IOC 了解一下 C# AutoMapper 了解一下
- ASP.NET 大文件下载的实现思路及代码