1. 程式人生 > >fastdfs下載時恢復原始檔名

fastdfs下載時恢復原始檔名

檔案被上傳到FastDFS後Storage服務端將返回的檔案索引(FID),其中檔名是根據FastDFS自定義規則重新生成的 例如:wKgB-lkdxUmAPb-QAAIbD3CxJDw317.txt,而不是原始檔名,使用http下載時如不加處理,顯示給使用者的檔名會是這樣的wKgB-lkdxUmAPb-QAAIbD3CxJDw317.txt,這樣的使用者體驗很不好。由於FastDFS不會儲存原始檔名,也不提供回覆原始名的方法,我們需要自己實現

那麼就需要我們將原始檔名記錄在資料庫中,在下載的時候將原檔名傳遞到伺服器,然後用nginx獲取到原始檔名,在寫入響應頭裡面

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";
}