2013-11-26 218 views
1

我的任务非常简单,在按钮单击上我想在浏览器上显示生成的PDF,但同时将其下载到客户端计算机上。ASP.NET - 在浏览器上下载文件和显示器

我做了2个函数,一个用于下载&其他用于在浏览器上显示它。当我单独运行它们时,它们像一个魅力一样工作,但是当我通过按钮单击它们时,只有被称为第一个作用的另一个才会做任何事情。

下面是下载文件的代码。

_page.Response.Clear(); 
      _page.Response.AddHeader("Content-Disposition", "attachment; filename=payments.xls"); 
      //Download the file and prompt the user to save 
      _page.Response.BinaryWrite(data); 
      _page.Response.End(); 

下面的代码显示在浏览器

_page.Response.Clear(); 
      _page.Response.ContentType = "application/pdf"; 
      _page.Response.OutputStream.Write(_datastrem.GetBuffer(), 0, _datastrem.GetBuffer().Length); 
      _page.Response.Flush(); 

**我还要提到的是我想要做的一切,上回发。

+0

你究竟如何称呼这些?你有没有尝试在浏览器中显示内容,并使用iframe从中给你的客户端文件? – Dethariel

+0

对不起,我用代码更新了这个问题。 – KhanZeeshan

回答

1

你并不完全展示你的代码,但是从你所描述的我可以说这是行不通的:你只能对每个HTTP响应执行一个动作。您可以将文件下载(content-disposition在浏览器中显示该文件。

如果您想同时执行这两个操作,则必须使用显示文件的中间页面,然后(例如使用JavaScript)执行文件下载。

+0

你能告诉我如何通过JavaScript下载文件,因为浏览器会显示pdf,所以我怎样才能调用下载功能。 – KhanZeeshan

+0

例如,在iframe的HTML文档中显示PDF。 – CodeCaster

+0

我不想打开任何弹出窗口或任何我想在同一页上显示pdf的东西。 – KhanZeeshan