Kaynağa Gözat

fix: 修复文件流下载bug

喵你个旺呀 1 yıl önce
ebeveyn
işleme
66f4d2884c
1 değiştirilmiş dosya ile 2 ekleme ve 1 silme
  1. 2 1
      Web/src/utils/download.ts

+ 2 - 1
Web/src/utils/download.ts

@@ -101,6 +101,7 @@ export function openWindow(url: string, opt?: { target?: string; noopener?: bool
 export function getFileName(headers: RawAxiosResponseHeaders | AxiosResponseHeaders) {
 	var fileName = headers['content-disposition'].split(';')[1].split('filename=')[1];
 	var fileNameUnicode = headers['content-disposition'].split('filename*=')[1];
+	if (fileName?.includes("%")) fileName = decodeURIComponent(fileName);
 	if (fileNameUnicode) {
 		//当存在 filename* 时,取filename* 并进行解码(为了解决中文乱码问题)
 		fileName = decodeURIComponent(fileNameUnicode.split("''")[1]);
@@ -115,7 +116,7 @@ export function getFileName(headers: RawAxiosResponseHeaders | AxiosResponseHead
  */
 export function downloadStreamFile(res: any, fileName: string | undefined = undefined) {
 	const contentType = res.headers['content-type'];
-	fileName = fileName || getFileName(res.headers['content-disposition']);
+	fileName = fileName || getFileName(res.headers);
 	const blob = res.data instanceof Blob ? res.data : new Blob([res.data], { type: contentType });
 	downloadByUrl({ url: window.URL.createObjectURL(blob), fileName });
 }