2016-04-22 192 views
0

/var/www/storage/文件夾只能找到mp3文件。我想要做的是,使這些文件的每個請求最終下載而不是在瀏覽器中播放。Nginx強制下載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"; 
     } 
    } 

回答

0

瀏覽器播放或下載的決定取決於content-type標題。如果要強制瀏覽器下載文件,而不是玩,你的服務器應該爲MP3文件返回Content-Type: application/octet-stream

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

初始配置幾乎是正確的,你都忘了是「附件」:

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

還建議您按照raven428的建議來執行application/octet-stream。不過,我相信在不調整內容類型的情況下,您將在大多數UA中獲得「另存爲」。

RFC 2616 sec19.5.1

如果該頭在與所述應用程序/ octet-流內容類型的響應中使用的,隱含的建議是,用戶代理不應該顯示的響應,而是直接進入一`將回復保存爲...'對話框。