nginx文件強制下載的配置方法
現(xiàn)在的瀏覽器能夠識別很多文件類型(txt,pdf,jpg...),并在瀏覽器中自動打開
情況一:
添加頭信息Content-Disposition "attachment;"會使瀏覽器強制下載:
#表示瀏覽器內(nèi)嵌顯示一個文件
Content-disposition: inline; filename=foobar.pdf
#表示會下載文件,如火狐瀏覽器中
Content-disposition: attachment; filename=foobar.pdf
nginx配置如下,在相應(yīng)的server中添加如下location:
location /upload {
add_header Content-Disposition "attachment;";
}
情況二:
有這么一個需求,對于圖片文件和pdf等文件鏈接,只要訪問實在某個路徑下,不能在瀏覽器中打開圖片,而是提示用戶保存到本地,文件名使用訪問的文件名。
這個問題主要是IE造成的,不管mime類型是什么,比如人工把圖片的mime類型設(shè)置為octet-stream,如果瀏覽器認識文件后綴的話,仍然會在瀏覽器中打開圖片,IE瀏覽器夠垃圾的吧?
解決方案:
在響應(yīng)的http頭添加:Content-Disposition: attachment; filename=文件名
nginx配置如下:
location ~ ^/somepath/(.*)$ {
add_header Content-Disposition "attachment; filename=$1";
alias "E:/apache-tomcat-7.0.32/webapps/upload/$1";
}
這里使用到了正則表達式,捕獲請求的文件名。
另外,需要注意nginx的location優(yōu)先級,首先是=,然后是^~,最后才是~。
這樣,IE瀏覽器就會忽略掉原mime類型,提示用戶把文件保存到本地。
相關(guān)文章
Nginx?Proxy?Manager的具體實現(xiàn)
Nginx?Proxy?Manager?就是一個?Nginx?的代理管理器,本文主要介紹了Nginx?Proxy?Manager的具體實現(xiàn),具有一定的參考價值,感興趣的可以了解一下2024-05-05
Nginx 實現(xiàn) TCP/DUP流量按 IP 動態(tài)轉(zhuǎn)發(fā)操作方法
為優(yōu)化網(wǎng)絡(luò)性能和提升服務(wù)可用性,通過Nginx配置stream模塊根據(jù)客戶端IP地址動態(tài)轉(zhuǎn)發(fā)TCP請求至不同后端服務(wù)器節(jié)點,適用于數(shù)據(jù)庫代理、TCP服務(wù)負載均衡及地域或來源IP分流的流量調(diào)度等場景,本文給大家介紹Nginx 實現(xiàn) TCP/DUP流量按 IP 動態(tài)轉(zhuǎn)發(fā)的操作2024-10-10
阿里云Linux系統(tǒng)Nginx配置多個域名的方法詳解
本篇文章主要介紹了阿里云Linux系統(tǒng)Nginx配置多個域名的方法詳解,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2017-02-02
Nginx啟動成功卻無法訪問網(wǎng)頁的問題分析和解決方案(完整的排除方案)
我是用的阿里云的服務(wù)器,所以我的問題就在于阿里云服務(wù)器必須單獨開端口,在找到這個問題之前,我已經(jīng)把所有能試的方法試過了一遍都沒有問題,在增加端口之后直接成功了,如果你也遇到了這樣的問題,就和我一起排除吧2023-12-12

