我有一个网站,我让用户下载mp3文件。代码片段(部分)如下所示:
Response.Clear();
Response.AppendHeader("Content-Disposition:", "attachment; filename=mike.mp3");
Response.AppendHeader("Content-Length", "1000");
Response.ContentType = "audio/mpeg3";一位客户抱怨说,他无法在Mac 10.4.11上的Safari上下载此文件。(它只是在页面上呈现mp3文件)所以,我下载了Safari for Windows,但无法重现这个问题。那么,我猜Windows版的Safari和Mac版的Safari有区别吗?
我没有Mac机器。如何解决此问题?
发布于 2010-02-13 08:25:45
也许是头文件名后面的冒号?
是的,这肯定不应该出现在那里。
另外,适用于MP3的MIME媒体类型是audio/mpeg。这种类型涵盖了紧密相关的MPEG层-1、层-2 (.mp2)和层-3 (.mp3)格式(但不包括非常不同的MPEG -4AAC)。
浏览器不会识别非标准(未注册到IANA)的audio/mpeg3类型,因此任何人都不知道他们将如何选择处理它们。不幸的是,它经常涉及一些可怕的内容嗅探猜测,当浏览器看到他们认为是一种(错误)文件类型证据的虚假字符串时,这可能会导致非常不适当的结果。
发布于 2010-02-13 10:20:06
有意思的。我没有asp.net,所以我创建了这个Python web应用程序:
#!/usr/bin/env python
import werkzeug
@werkzeug.Request.application
def app(request):
f = open("audio.mp3")
r = werkzeug.Response(f, content_type="audio/mpeg3")
r.headers.add("Content-Disposition", "attachment; filename=mike.mp3")
r.headers.add("Content-Length", "1000")
return r
werkzeug.run_simple("localhost", 4000, app)即使Content-Type (和Content-Length)错误,Safari也只是下载文件。我在Mac 10.6.2上安装了Safari版本4.0.4 (6531.21.10)。
https://stackoverflow.com/questions/2255894
复制相似问题