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