我正在使用以下代码打开pdf byte []文件而不保存它。它工作正常但在此操作之后没有其他服务器端操作(如按钮单击)不起作用。回发无效。
byte[] bytfile = Objects.GetFile(Convert.ToInt32(txtslno.Text.Trim()));
Response.Clear();
Response.ClearContent();
Response.ClearHeaders();
Response.ContentType = "application/pdf";
Response.AddHeader("Content-Disposition", "attachment;filename="+filename);
Response.AddHeader("Content-Length", bytfile.Length.ToString());
Response.OutputStream.Write(bytfile, 0, bytfile.Length);
Response.Flush();
Response.End();
答案 0 :(得分:4)
试试这个。它应该工作。
byte[] bytfile = Objects.GetFile(Convert.ToInt32(txtslno.Text.Trim()));
Response.Clear();
MemoryStream ms = new MemoryStream(bytfile);
Response.ContentType = "application/pdf";
Response.AddHeader("content-disposition", "attachment;filename=test.pdf");
Response.Buffer = true;
ms.WriteTo(Response.OutputStream);
Response.End();
其他尝试
Response.BinaryWrite(bytfile);
而不是
ms.WriteTo(Response.OutputStream);
在上面的代码中。
答案 1 :(得分:0)
它工作正常但在此操作之后没有其他服务器端操作 像按钮点击不起作用。
您是在页面或控件中使用代码吗?
为您的目的使用通用处理程序(* .ashx)。下载pdf的代码不再会给应用程序带来麻烦。