2012-02-10 301 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