.NET6 Web Api 檔案下載同時取得檔名

.NET6, Download File, Content-Disposition, ContentDisposition

引言

為工作紀錄。找到一個比較標準的答案在下載檔案時同時也取得檔名。

主要參考文章

下載檔案

下載檔案同時送回檔名:Content-Disposition

這個Content-Disposition為一個 Response Header 屬性之一。用來把附件檔名等資訊送回去前端,此機制在歷經多年後已變成標準了。標準格式如下例:

circle-info

因為多國語語有字型編碼的問題,固再加入一個 "filenam*" 屬性並有UTF-8與URL編碼,如下例子:

circle-info

Content-Disposition: attachment; filename="MinIO __.docx"; filename*=UTF-8''MinIO%20%E8%A9%95%E4%BC%B0.docx

可用decodeURI指令來解碼得出檔名,如下圖例:

參考關鍵字文件,更多說明請膜拜google大神。這裡以紀錄為主。

程式碼紀錄

後端:Web API in .NET6

前端:React.v18

組態:可能會有 CORS (Cross-Origin Resource Sharing)預設限制把 Content-Disposition 過濾掉,必須設定成可以通過:

EOF

Last updated