文件被上傳到FastDFS后Storage服務(wù)端將返回的文件索引(FID)恤磷,其中文件名是根據(jù)FastDFS自定義規(guī)則重新生成的 例如:wKgB-lkdxUmAPb-QAAIbD3CxJDw317.txt,而不是原始文件名,使用http下載時如不加處理,顯示給用戶的文件名會是這樣的wKgB-lkdxUmAPb-QAAIbD3CxJDw317.txt竿开,這樣的用戶體驗很不好涤躲。由于FastDFS不會存儲原始文件名,也不提供回復(fù)原始名的方法糜颠,我們需要自己實現(xiàn)
那么就需要我們將原始文件名記錄在數(shù)據(jù)庫中,在下載的時候?qū)⒃募麄鬟f到服務(wù)器萧求,然后用nginx獲取到原始文件名其兴,在寫入響應(yīng)頭里面
http://192.168.1.124:8000/group2/M00/00/00/wKgB-Vkb2yuAEk80AAAABpDVNbM781.txt?attname=name.txt
if($arg_attname?~*?\.(doc|docx|txt|pdf|zip|rar|txt)$)?{
add_header?Content-Disposition"attachment;filename=$arg_attname";
}