I have an mp3 on an apache server. I want it to be downloaded as a file when a user visits the link. Instead quicktime, or google chromes media player will try and stream it.
Is there a fix for this with headers? Or is the only option so 'right click save as'?
Edit Here is my header. Safari has stopped streaming, but chrome contines to do it. Chrome seems to be ignoring this:
I can see the header has been changed correctly:
Date Wed, 04 Aug 2010 00:14:35 GMT
Server Apache/2.2.13 (Unix) mod_ssl/2.2.13 OpenSSL/0.9.8e-fips-rhel5 mod_auth_passthrough/2.1 mod_bwlimited/1.4 FrontPage/5.0.2.2635 PHP/5.2.11
Last-Modified Tue, 03 Aug 2010 04:37:01 GMT
Etag "2bbd692-79597d-48ce3de3f5540"
Accept-Ranges bytes
Content-Length 7952765
Content-Disposition attachment
Keep-Alive timeout=5, max=100
Connection Keep-Alive
Content-Type audio/mpeg
Is there anything else in the header that would cause this?
Edit Doing some resea开发者_StackOverflowrch I found this: http://www.google.com/support/forum/p/Chrome/thread?tid=76de4f53f43f03d3&hl=en Looks like there might be a bug in chrome preventing it from downloading.
You want to set the Content-Disposition
response header to "attachment", and probably the "filename" field as well.
Example:
Content-Disposition: attachment; filename=foo.mp3;
To accomplish this directly in Apache, try putting the following in your httpd.conf
or .htaccess
file:
<FilesMatch "\.(?i:mp3)$">
ForceType audio/mpeg
SetEnvIf Request_URI "^.*/?([^/]*)$" FILENAME=$1
Header set Content-Disposition "attachment; filename=%{FILENAME}e"
UnsetEnv FILENAME
</FilesMatch>
EDIT:
Added filename field to Apache configuration example, borrowed from this answer. You should be aware, however, of potential problems caused by filenames with non-US-ASCII characters in them: see this question.
Alternatively, you could use a generic constant filename (since you know the extension already) like song.mp3
, but this might not be an option depending on your circumstances.
A third option would be to create a script to serve these MP3s, which can set the header and take care of stripping unwanted characters out of the filename.
精彩评论