因為業務需要調用接口獲取的是 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();
}
