我在嘗試從我的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