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

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

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那一行比較關(guān)鍵,這樣配置,保證不傳n參數(shù)的時(shí)候,就按原名字保存。不會(huì)出現(xiàn)空名字。
由于是以header形式指定,cdn會(huì)保存此頭信息,內(nèi)容分發(fā)時(shí),也會(huì)是一樣的表現(xiàn)。
apache讀取不到get參數(shù),因此配置不成功。不能應(yīng)用到以apache作為文件服務(wù)器的情況,如果誰(shuí)知道apache也可以配置,請(qǐng)告之,謝謝。
新聞熱點(diǎn)
疑難解答
圖片精選