protected void Button1_Click(object sender, EventArgs e) { string path; try { path = Request.PhysicalApplicationPath + "/" + Session["pdfpath"].ToString() + "/PDF/" + Session["mlmc"].ToString() + ".pdf"; } catch (Exception) { return; } System.IO.Stream iStream = null; byte[] buffer = new Byte[10000]; int length; long dataToRead; string filename = Session["mlmc"].ToString() + ".pdf"; try { iStream = new System.IO.FileStream(path, System.IO.FileMode.Open, System.IO.FileAccess.Read, System.IO.FileShare.Read); 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.End(); } }
Asp.net 实现PDF文件下载
最新推荐文章于 2021-05-18 13:37:02 发布