亚洲女同成aV人片在线观看|亚洲www啪成人一区二区麻豆|亚洲国产中日韩精品综合|亚洲国产成人精品一级片|亚洲无码在线视频免费

Nginx配置實(shí)現下載文件的示例代碼
2026-05-05 09:08:55

這篇文章主要介紹了Nginx配置實(shí)現下載文件的置實(shí)載文示例代碼,文中通過(guò)示例代碼介紹的現下非常詳細,對大家的示例學(xué)習或者工作具有一定的參考學(xué)習價(jià)值,需要的代碼朋友們下面隨著(zhù)小編來(lái)一起學(xué)習學(xué)習吧

偶爾聽(tīng)人說(shuō)用nginx實(shí)現文件上傳下載,之前看nginx實(shí)踐大致看到過(guò),置實(shí)載文沒(méi)有細究?,F下所以今天就想研究下nginx實(shí)現文件的示例上傳下載,直接開(kāi)搞,代碼本地服務(wù)啟起。置實(shí)載文這里??記錄下配置及踩坑記錄?,F下

一、示例配置

http {
...
server: {
# 配置下載
location /d(′_ゝ`)ownヽ(′ー`)ノload {
root D:\\download;
autoindex on;
autoindex_exact_size off;
}
}
...
}http {
...
server: {
# 配置下載
location /download {
root D:\\download;
autoindex on;
autoindex_exact_( ?ヮ?)size off;
}
}
...
}??

這是代碼目錄里隨便放的幾個(gè)文件,可以看到實(shí)現成功。置實(shí)載文

這里踩過(guò)幾ヾ(′ω`)?個(gè)坑,現下下面提示下:

1、示例r(′▽?zhuān)?)oot路徑配置問(wèn)題

剛開(kāi)始配置的 alias D:\download,報錯:2020/08/14 10:36:06 [emerg] 26396#16140: invalid number of arguments in "alias" directive in D:\Program File\nginx\nginx-1.13.12/conf/nginx.conf:74

那么查配置 74 行,發(fā)現少了分號,加上問(wèn)題依舊。換成 root D:\download;,報錯:2020/08/14 10??:44:20 [emerg] 21376#17156: invalid number of arguments in "root" directive in D:\Program File\nginx\nginx-1.13.12/conf(′▽?zhuān)?)/nginx.conf:74

問(wèn)題依舊,后來(lái)發(fā)現路徑有問(wèn)題,寫(xiě)錯(╬?益?)了,應該是

root D:/download;
// 或者
root D:\\dow??nload;

原因都懂,就是 \ 只是個(gè)轉義字符,要么用 \\,要么就用 /

2、root與alias差別

ok,這樣配置可以了。但是當我輸入:http://localhost/download/,報錯404,我(wo)的D盤(pán)目錄下為D:/download/*,然后??其他文件

剛開(kāi)始報錯:2020/08/14 11:02:49 [error]?? 9928#12876: *11 CreateFil??e() "D:\download\/do(′?ω?`)wnヽ(′?`)ノload" failed (2: The system cannot find the file specifi??ed), client: 127.0.0.1, server(╯°□°)╯︵ ┻━┻: , request: "GET /dow??nload HTTP/1.1", host: "localhost"

看到這個(gè)路徑D:\download\/download這里有問(wèn)題,所以我把配置rootD:/download/;(′ω`*),后面的 / 去掉了,再試,還是報錯:2??020/08/14 11:04:15 [error] 3128#11636: *1 CreateFile() "D:\download/download" failed (2: The system cannot find the file speci??fied),(′_`) client: 127.0.0.1, se??rver: , requ??est: "GET /download HTTP/1.1", host: "localhost"

所以??考慮到不是路徑的問(wèn)題,那ヽ(′ー`)ノ么問(wèn)題原因在哪?在于 root 與 alias 配置的(′▽?zhuān)?區別。

也就是說(shuō) 當 rootD:/download; 時(shí),你請求http://localhost/download/,他(ta)找的是:D:\download\download

而當 alias D:/download; 時(shí),你??請求http://localhost/download/,他找的才是:D:\download

那么我把我的本地路??徑改一下:D:/download/(╯°□°)╯︵ ┻━┻dow( ?ヮ?)nload/*,然后再是其他文件,那么就成功了(?????)。

3、中文文件問(wèn)題

還有坑,點(diǎn)擊全英文名文件是正常預覽下載的,中文名文件報錯。在 server段中添加 charset utf-8; 也不行,或者 charset gbk,utf-8; 也不行。有清楚的,煩請不吝賜教,謝謝。

思考良久,應該不是nginx配置的問(wèn)題了,因為很多地方都說(shuō)這樣配置就可以顯示(′?_?`)中文了。然后我想到會(huì )不會(huì )是系統編碼問(wèn)題呢?我用本地做服務(wù)器。使用chcp命令查了一?下系統編碼,顯示936。一般正常能顯示中文的是936,那說(shuō)明沒(méi)問(wèn)題。

雖然中文顯示是正常的,但是**的,一點(diǎn)還是報錯,亂碼或者404。沒(méi)辦法直??接點(diǎn)擊下載中文名文件,(′_`)或者瀏覽中文名目錄。

中文名文件(jian)下載可以通過(guò) 復制文件名,然后貼在瀏覽器url后面,就可以下載下來(lái)了,中???文┐(′д`)┌名目錄是真的無(wú)法瀏覽?。?!

原ヽ(′▽?zhuān)?ノ因是,windows服務(wù)器中文是gbk編碼,nginx的這種頁(yè)面的h(′?ω?`)r(′?`)ef就是用gbk進(jìn)行urlencode的,然后一般瀏覽器都是使用utf-8的,當然就(jiu)沒(méi)法訪(fǎng)問(wèn)了。

4、想防止瀏覽器自動(dòng)打開(kāi)文件而不是下載文件,添加

add_hea(╯°□°)╯︵ ┻━┻der Content-Disposition "at??tachment;"??;

// 所有文件都不打開(kāi)
location / {
add_header Content-Disp?osition "attachment;??filename*=utf-8'zh_cn'$arg_n";
}

一般存儲在服務(wù)器上的文件都不會(huì )用原來(lái)的名字,所以下(′?ω?`)載的時(shí)候需要改名,可通過(guò)url中添加參數,然后在nginx中根據參數來(lái)改( ?ヮ?)名。

舉例:參數為 n=xxx.jpg

url:https"http://xxxxx?n=xxx.jpg //表示把下載下來(lái)的文件名字改為xxx.jpg

ng??inx需要配置成

location / {
if ($request_uri ~* ^.*\?n=([ヾ(^-^)ノ^&am(╯°□°)╯p;]+)$) {
add(╯°□°)╯_head┐(′д`)┌er Content-Disposition "filename*=$arg_n";
}
}

注釋?zhuān)豪锩娴膗tf-8是有些瀏覽器會(huì )自動(dòng)把文件改成urle??ncode的格式

一般1,2都是要一起配置的

location / {
if ($request_uri ~* ^.*\?n=(??[^&]+)$) {
add_header Content-Disposition "attachment;filename*=$arg_(′?`)n";
}
}

到此這篇關(guān)于Nginx配置實(shí)現下載文件的示例代碼的文章就介紹到這了,更多相關(guān)Nginx 下載文件內容請搜索腳本之家以前的文章或繼續瀏覽下(╬?益?)面的相關(guān)文章希望大家以后多多支持腳本之家!

來(lái)源:腳本之家

鏈接:https://www.jb51.netˉ\_(ツ)_/ˉ/article/199422.ht??m

(作者:SEO診斷)

亚洲女同成aV人片在线观看|亚洲www啪成人一区二区麻豆|亚洲国产中日韩精品综合|亚洲国产成人精品一级片|亚洲无码在线视频免费 石屏县| 定南县| 苍溪县| 昌宁县| 定日县| 新化县| 永春县| 桐城市| 澳门| 南通市| 纳雍县| 苍南县| 郁南县| 和龙市| 云南省| 平遥县| 南部县| 昌都县| 房山区| 湖州市| 博爱县| 贞丰县| 凤翔县| 神木县| 两当县| 铜川市| 那曲县| 德格县| 北流市| 仁化县| 濮阳市| 台州市| 五台县| 玛沁县| 蓬溪县| 乐安县| 郧西县| 宜兴市| 新和县| 荆州市| 城步| http://444 http://444 http://444 http://444 http://444 http://444