nginx中文件下載指定保存文件名怎么配置

一般在我們上傳完資源文件之后,為了避免文件名沖突,會將文件名改成毫無意義的一段字符。這個字符,可能是md5產生的,或者是其他方式產生的字符串。這時候,下載的時候,默認保存的文件名會是這段毫無意義的文件名(圖1)。

nginx中文件下載指定保存文件名怎么配置

其實,nginx是支持下載時重命名的,讓文件名更加友好。

nginx中文件下載指定保存文件名怎么配置

nginx也很容易配置:只要加入以下幾行即可:

復制代碼?代碼如下:

location ~* .*.(doc|txt|jar|zip|apk)(?.*)?$
{
??????? if ($request_uri ~* ^.*/(.*).(doc|txt|jar|zip|apk)(?n=([^&]+))$) {
??????????? add_header content-disposition “attachment;filename=$arg_n.$2”;
??????? }
??????? log_not_found off;
??????? expires 30d;
??????? break;
}

if那一行比較關鍵,這樣配置,保證不傳n參數的時候,就按原名字保存。不會出現空名字。

由于是以header形式指定,cdn會保存此頭信息,內容分發時,也會是一樣的表現。

? 版權聲明
THE END
喜歡就支持一下吧
點贊15 分享