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

