• 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格式的文件。下面是最常用的一些文档内容类型:

     .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文件无法打开的方案
     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.html
  • 相关阅读:
    Ubuntu1804 安装 cuda 、cudnn、TensorRT
    sudo apt install nvinfer*
    PyTorch for Jetson Nano
    Jetson Nano安装 Jupyter lab
    docker容器登录,退出等操作命令
    pyenv和pipenv简单使用
    pyenv使用国内镜像安装指定的Python版本
    python写入csv文件的几种方法总结
    Python 能做什么?
    极验滑块验证的使用
  • 原文地址:https://www.cnblogs.com/rhythmK/p/3288240.html
Copyright © 2020-2023  润新知