我正在使用Crystal Reports并拥有一些返回PDF报告流的代码。生成报告后,浏览器(IE8)会提示用户打开或保存报告。它可以工作,但在幕后抛出异常。我们处理异常,但处理会导致其他一些问题。
// This completes but throws an exception.
rpt.ExportToHttpResponse(crExportOptions.ExportFormatType, resp, true, fileName);
根据SAP网站上post的解决方案正常工作,不再抛出异常。但是,问题是我们不再可以选择打开或保存文件。报告刚刚在浏览器中打开。
System.IO.Stream oStream = null;
byte[] byteArray = null;
oStream = report.ExportToStream(crExportOptions.ExportFormatType);
byteArray = new byte[oStream.Length];
oStream.Read(byteArray, 0, Convert.ToInt32(oStream.Length - 1));
response.ClearContent();
response.ClearHeaders();
response.ContentType = "application/pdf";
response.BinaryWrite(byteArray);
response.Flush();
response.Close();
report.Close();
report.Dispose();
我想要我的蛋糕,我想吃它!我不希望抛出异常(由SAP解决方案解决)但仍希望选项打开或保存返回的PDF。如何通过保存/打开选项修改上面的代码?
谢谢!
答案 0 :(得分:0)
在此SO post中找到了解决方案。
将此添加到我的代码中......
response.AddHeader("Content-Disposition", string.Format("attachment; filename={0}", reportName));