2012-02-10 308 views
2

我在我的服务器上有一个文件,或者在这个本地主机上有一个文件。我想使用此代码,发送给用户:Response.TransmitFile损坏文件

 Response.ContentType = "application/pdf"; 
     Response.AppendHeader("Content-Disposition", "attachment; filename=buylist.pdf"); 
     Response.TransmitFile(Server.MapPath("~/buylist.pdf")); 

     Response.ContentType = "application/csv"; 
     Response.AppendHeader("Content-Disposition", "attachment; filename=buylist.csv"); 
     Response.TransmitFile(Server.MapPath("~/buylist.csv")); 

我知道我想要传递我们的罚款文件,我甚至尝试添加Response.Close()但每次文件已损坏。 csv给我的网页的HTML。我真的迷失了。

+0

这只是一个错误,在第二个块中,您将文件名设置为PDF而不是CSV? – xcud 2012-02-10 16:36:26

+0

@xcud是的,我会修复它 – 2012-02-10 16:37:51

回答

6

尝试在此代码的顶部放置一个Response.Clear(),并在Response.End()和bottom的底部添加一个Response.Clear()。

此外,它看起来像你试图在一个响应中传输两个文件,并且这不起作用。它也可能是代码的两个版本,显示在你的问题的相同片段中,但这仍然值得一提:您需要选择一个文件以在一个响应中返回。如果你绝对是必须一次返回两个文件,你必须首先压缩或集中它们。没有办法用相同的响应发送两个文件。

+0

这工作!然而,IE9只能在保存文件的情况下才能正常工作,但现在还不错 – 2012-02-10 16:48:13