2010-07-08 61 views
3

我只是想送一個.wav文件的Internet Explorer的ASP.net處理程序:下載.wav文件

public void ProcessRequest(HttpContext context) 
{ 
    HttpResponse response = context.Response; 
    response.ContentType = "audio/x-wav"; 
    response.WriteFile("MyWav.wav"); 
    response.AddHeader("Content-Length", "304578"); 

    response.Flush(); 
} 

這適用於Firefox和Chrome,但我在Internet Explorer中只顯示一個空白屏幕。爲什麼?我試過設置「Content-Disposition」標題,如果設置爲「attachment」,我會在下載對話框中輸入am。如果我將它設置爲「inline」,我只是得到一個空白像之前的頁面。

+0

「爲什麼?」我很**很想說,因爲它是IE,你期望什麼?不過實話說。你應該提及你正在談論的版本。 – harpo 2010-07-08 01:13:34

+0

這是互聯網瀏覽器8 – user385990 2010-07-08 01:34:01

+0

所以內容處置:附件做你想要的東西?那麼你的問題是什麼? – 2010-07-08 01:42:40

回答

1

你可以嘗試將它嵌入在一個對象

<object 
classid="clsid:22D6F312-B0F6-11D0-94AB-0080C74C7E95"> 
<param name="AutoStart" value="1" /> 
<param name="FileName" value="GiveYourPageNameHere.aspx" /> 
</object> 

,作爲我在上面的例子中所提到的wav文件發送到瀏覽器也可以作爲源頁面或你可以直接指定文件名。

+0

這適用於IE瀏覽器,但需要安裝Firefox插件和Chrome。我不明白爲什麼IE瀏覽器在我的ASP.net頁面出現問題時與其他人一起處理,例如http://www.nch.com.au/acm/11k16bitpcm.wav – user385990 2010-07-08 06:19:27

0

事實證明,IE試圖很聰明,並忽略HTTP頭,如果URL中沒有.wav,它就會假定它是文本。

通過設置別名URL /foo/bar.wav?audioId=123指向/foo/baz?audioId=123可以確認這一點。直接訪問時,IE中不顯示任何內容,但通過別名訪問時,會顯示並播放.wav文件。