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();

            }

  


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM