/// <summary>
/// 发送PDF文件回浏览器端
/// </summary>
/// <param name="fileName"></param>
/// <param name="ms"></param>
/// <param name="encoding"></param>
public static void SendFile(string fileName, MemoryStream ms, Encoding encoding = null)
{
fileName = (fileName + "").Replace(" ", "");
encoding = encoding ?? Encoding.UTF8;
if (ms != null && !string.IsNullOrEmpty(fileName))
{
System.Web.HttpResponse response = System.Web.HttpContext.Current.Response;
response.Clear();
response.Charset = encoding.BodyName;// "utf-8";
if (!HttpContext.Current.Request.UserAgent.Contains("Firefox") && !HttpContext.Current.Request.UserAgent.Contains("Chrome"))
{
fileName = HttpUtility.UrlEncode(fileName, encoding);
}
response.AddHeader("Content-Disposition", "attachment;filename=" + fileName);
//为了解决打开,导出NPOI生成的xlsx文件时,提示发现不可读取内容。
if (!(fileName + "").ToLower().EndsWith(".xlsx"))
{
response.AddHeader("Content-Type", "application/octet-stream");
response.BinaryWrite(ms.GetBuffer());
}
else
{
response.BinaryWrite(ms.ToArray());
}
ms.Close();
ms = null;
response.Flush();
response.End();
}
}