在线时间:8:00-16:00
迪恩网络APP
随时随地掌握行业动态
扫描二维码
关注迪恩网络微信公众号
本文介绍了一种在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格式的文件。下面是最常用的一些文档内容类型:
.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";
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 } 一只站在树上的鸟儿,从来不会害怕树枝会断裂,因为它相信的不是树枝,而是它自己的翅膀。与其每天担心未来,不如努力做好现在。
本文介绍了一种在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格式的文件。下面是最常用的一些文档内容类型:
.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";
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 } |
请发表评论