• ASP.NET 实现Base64文件流下载PDF


    因为业务需要调用接口获取的是 Base64文件流 需要提供给客户下载PDF文档

    源码部分借鉴网上,具体地址忘记了。

     //Base64文件流 
                byte[] buffer = Convert.FromBase64String(decodedString); 
                System.IO.Stream iStream = new System.IO.MemoryStream(buffer);
                try
                {
                    int length;
                    long dataToRead;
                    string filename = sn + ".pdf";//保存的文件名称
                    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.Flush();
                    Response.End();
    
                }
    

      

  • 相关阅读:
    在 Eclipse 中使用 JUnit4 进行单元测试
    版本控制之道使用Git
    程序员成熟的标志
    Java 编程需要注意的细节
    【netty】netty的websocketframe
    求一个数内含1个次数
    apache bench的使用
    更改centos epel源
    [linux]centos7下解决yum install mysqlserver没有可用包
    cacti的安装与配置
  • 原文地址:https://www.cnblogs.com/LoveTX/p/6147849.html
Copyright © 2020-2023  润新知