2010-07-08 188 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文件。