Nginx强制下载mp3文件

时间:2016-04-22 23:07:31

标签: nginx download header webserver mp3

Inside /var/www/storage/文件夹中只有mp3文件。我想要做的是,对这些文件的每个请求最终都是下载而不是在浏览器中播放。

我当前的配置看起来像这样,我无法弄清楚出了什么问题。

  server {
       charset utf-8;
       client_max_body_size 128M;

       listen 80; ## listen for ipv4
       server_name dl.domain.com;
       root        /var/www/storage/;
       location / {
            add_header Content-Disposition: "$request_filename";
        }
  }

2 个答案:

答案 0 :(得分:0)

浏览器决定播放或下载取决于content-type标头。如果你想强制浏览器下载文件而不是播放,你的网络服务器应该返回Content-Type: application/octet-stream的mp3文件:

location ~ /mp3folder/.+\.mp3$ {
 types {
  application/octet-stream;
 }
}

答案 1 :(得分:0)

您的初始配置几乎是正确的,您忘记的只是“附件”:

 add_header Content-Disposition "attachment; filename=$request_filename";

还建议您按照raven428的建议执行application / octet-stream。但是我相信你会在没有调整Content-Type的情况下在大多数UAs中获得“另存为”。

RFC 2616 sec19.5.1

  

如果在带有application / octet-stream内容类型的响应中使用此标头,则隐含的建议是用户代理不应显示响应,而是直接输入“save response as ...”对话框。

相关问题