【问题标题】:Download .wav file with asp.net in Internet Explorer在 Internet Explorer 中使用 asp.net 下载 .wav 文件
【发布时间】:2010-07-08 01:05:50
【问题描述】:

我只是尝试使用 ASP.net 处理程序将 .wav 文件发送到 Internet Explorer:

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”标头。如果我将其设置为“附件”,我am会显示下载对话框。如果我将其设置为“内联”,我只是像以前一样得到一个空白页。

【问题讨论】:

  • “为什么?”我如此很想说,因为它是 IE,你期待什么?不过实话说。您可能应该提及您正在谈论的版本。
  • 这是 Internet Explorer 8
  • 那么 Content-Disposition:attachment 可以满足您的需求吗?那你有什么问题?
  • 否 - 我需要 wav 文件内联播放。
  • 不是——它只是对问题的精简解释——无法解决如何取消旧问题。

标签: asp.net http header wav


【解决方案1】:

您可以尝试将其嵌入到对象中

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

发送 wav 文件到浏览器的页面也可以作为我在上面示例中提到的源,或者您可以直接指定文件名。

【讨论】:

  • 这适用于 IE,但需要安装适用于 Firefox 和 Chrome 的插件。我不明白为什么 IE 对我的 ASP.net 页面有问题,而其他人则很好,例如nch.com.au/acm/11k16bitpcm.wav
【解决方案2】:

事实证明,IE 试图变得聪明并忽略 HTTP 标头,如果 URL 中没有 .wav,它会假定它是文本。

通过设置别名 URL /foo/bar.wav?audioId=123 指向 /foo/baz?audioId=123 来确认这一点。直接访问时,IE 中不显示任何内容,但通过别名访问时,它会显示并播放 .wav 文件。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2022-01-10
    • 1970-01-01
    • 2016-04-29
    • 2016-12-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-05-29
    相关资源
    最近更新 更多