nginx文件強(qiáng)制下載的配置方法
現(xiàn)在的瀏覽器能夠識別很多文件類型(txt,pdf,jpg...),并在瀏覽器中自動(dòng)打開
情況一:
添加頭信息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è)需求,對于圖片文件和pdf等文件鏈接,只要訪問實(shí)在某個(gè)路徑下,不能在瀏覽器中打開圖片,而是提示用戶保存到本地,文件名使用訪問的文件名。
這個(gè)問題主要是IE造成的,不管mime類型是什么,比如人工把圖片的mime類型設(shè)置為octet-stream,如果瀏覽器認(rèn)識文件后綴的話,仍然會(huì)在瀏覽器中打開圖片,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á)式,捕獲請求的文件名。
另外,需要注意nginx的location優(yōu)先級,首先是=,然后是^~,最后才是~。
這樣,IE瀏覽器就會(huì)忽略掉原mime類型,提示用戶把文件保存到本地。
相關(guān)文章
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ù)可用性,通過Nginx配置stream模塊根據(jù)客戶端IP地址動(dòng)態(tài)轉(zhuǎn)發(fā)TCP請求至不同后端服務(wù)器節(jié)點(diǎn),適用于數(shù)據(jù)庫代理、TCP服務(wù)負(fù)載均衡及地域或來源IP分流的流量調(diào)度等場景,本文給大家介紹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è)域名的方法詳解,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2017-02-02
Nginx啟動(dòng)成功卻無法訪問網(wǎng)頁的問題分析和解決方案(完整的排除方案)
我是用的阿里云的服務(wù)器,所以我的問題就在于阿里云服務(wù)器必須單獨(dú)開端口,在找到這個(gè)問題之前,我已經(jīng)把所有能試的方法試過了一遍都沒有問題,在增加端口之后直接成功了,如果你也遇到了這樣的問題,就和我一起排除吧2023-12-12

