我在尝试从我的asp.net页面运行以下代码时遇到了问题。该代码来自另一篇文章(http://stackoverflow.com/questions/5828315/write-pdf-stream-to-response-stream)。当Test.pdf文件位于我的本地驱动器中时,我无法在单击对话框上的打开按钮时打开该文件。当点击保存按钮时,该文件会在“C:\ Downloads”中尝试以myAspPageName.pdf的形式进行操作,而不会实际保存任何内容。将PDF流写入响应流
我确定我做错了什么。谢谢你的帮助。有没有更好的方法来做同样的事情?
protected void Page_Load(object sender, EventArgs e)
{
Context.Response.Buffer = false;
FileStream inStr = null;
byte[] buffer = new byte[1024];
long byteCount; inStr = File.OpenRead(@"C:\Downloads\Test.pdf");
while ((byteCount = inStr.Read(buffer, 0, buffer.Length)) > 0)
{
if (Context.Response.IsClientConnected)
{
Context.Response.ContentType = "application/pdf";
Context.Response.OutputStream.Write(buffer, 0, buffer.Length);
Context.Response.Flush();
}
}
}
响应。 TransmitFile在资源上更有效 - 它不会将文件缓冲到内存中。 – 2011-05-06 21:58:58