C# 为什么可以';我不能从同一页下载两个不同的文件吗?
我使用这两个函数从一个页面下载两个不同的文件 RenderReport用于下载发送给它的rdlc报告,即LocalReport,download()用于下载pdf文件 现在的问题是,它们中的一个不能同时起作用。如果我下载RDLC报告,则pdf下载不起作用,反之亦然。它引发异常,即浏览器检测到重复的标题等C# 为什么可以';我不能从同一页下载两个不同的文件吗?,c#,asp.net,c#-4.0,webforms,memorystream,C#,Asp.net,C# 4.0,Webforms,Memorystream,我使用这两个函数从一个页面下载两个不同的文件 RenderReport用于下载发送给它的rdlc报告,即LocalReport,download()用于下载pdf文件 现在的问题是,它们中的一个不能同时起作用。如果我下载RDLC报告,则pdf下载不起作用,反之亦然。它引发异常,即浏览器检测到重复的标题等 public void Download() { try { MemoryStream memStream = Export
public void Download()
{
try
{
MemoryStream memStream = Export(html); // returns a memory stream object
byte[] bytesInStream = memStream.ToArray();
Response.Clear();
Response.ContentType = "application/pdf";
Response.Headers.Remove("content-disposition");
Response.AddHeader("content-disposition", "attachment; filename=name_you_file.pdf");
Response.BinaryWrite(bytesInStream);
Response.End();
Response.Flush();
}
catch (Exception)
{
throw;
}
}
private void RenderReport(LocalReport localReport)
{
try
{
//Give the collection a name (EmployeeCollection) so that we can reference it in our report designer
var reportType = "PDF";
string mimeType;
string encoding;
string fileNameExtension;
var deviceInfo =
string.Format("<DeviceInfo><OutputFormat>{0}</OutputFormat><PageWidth>8.27in</PageWidth><PageHeight>11.69in</PageHeight><MarginTop>0.3in</MarginTop><MarginLeft>0.3in</MarginLeft><MarginRight>0.3in</MarginRight><MarginBottom>0.3in</MarginBottom></DeviceInfo>", reportType);
Warning[] warnings;
string[] streams;
//Render the report
var renderedBytes = localReport.Render(
reportType,
deviceInfo,
out mimeType,
out encoding,
out fileNameExtension,
out streams,
out warnings);
//Clear the response stream and write the bytes to the outputstream
//Set content-disposition to "attachment" so that user is prompted to take an action
//on the file (open or save)
Response.Clear();
Response.ContentType = mimeType;
Response.AddHeader("content-disposition", "attachment; filename=Tender." + fileNameExtension);
Response.BinaryWrite(renderedBytes);
Response.End();
Response.Flush();
}
catch (Exception ex)
{
}
}
publicsvoid下载()
{
尝试
{
MemoryStream memStream=Export(html);//返回内存流对象
字节[]ByteInstream=memStream.ToArray();
Response.Clear();
Response.ContentType=“application/pdf”;
Response.Headers.Remove(“内容处置”);
AddHeader(“内容处置”、“附件;文件名=name_you_file.pdf”);
响应。二进制写入(字节流内);
Response.End();
Response.Flush();
}
捕获(例外)
{
投掷;
}
}
私有void RenderReport(LocalReport LocalReport)
{
尝试
{
//为集合指定一个名称(EmployeeCollection),以便我们可以在报表设计器中引用它
var reportType=“PDF”;
字符串模拟类型;
字符串编码;
字符串文件名扩展名;
var设备信息=
格式(“{0}8.27in11.69in0.3in0.3in0.3in0.3in0.3in”,reportType);
警告[]警告;
字符串[]流;
//提交报告
var renderedBytes=localReport.Render(
报告类型,
deviceInfo,
输出mimeType,
输出编码,
输出文件名扩展名,
流出的溪流,
发出警告);
//清除响应流并将字节写入outputstream
//将内容处置设置为“附件”,以便提示用户采取操作
//在文件上(打开或保存)
Response.Clear();
Response.ContentType=mimeType;
AddHeader(“内容处置”、“附件;文件名=投标书”+“文件名扩展名”);
BinaryWrite(renderBytes);
Response.End();
Response.Flush();
}
捕获(例外情况除外)
{
}
}
那么清楚“检测到重复的标题”不是吗?@Aristos解决方案是什么?我尽了我所能你什么意思不起作用?任何错误或控制都不会出现在该方法中??