박정하 박정하 04-04
250404 박정하 파일 다운로드 오류 수정
@e3330995965cba657869bcbdec51febf982b1d55
client/resources/api/file.js
--- client/resources/api/file.js
+++ client/resources/api/file.js
@@ -7,5 +7,5 @@
 
 // 파일 다운로드
 export const multiFileDownloadProc = (fileIds) => {
-  return apiClient.get(`/file/multiFileDownload.json`, { responseType: 'blob', params: { fileIds } });
+  return apiClient.post(`/file/multiFileDownload.json`, fileIds, { responseType: 'blob' });
 }
(파일 끝에 줄바꿈 문자 없음)
client/views/pages/bbsDcry/photo/PicHistoryDetail.vue
--- client/views/pages/bbsDcry/photo/PicHistoryDetail.vue
+++ client/views/pages/bbsDcry/photo/PicHistoryDetail.vue
@@ -206,20 +206,24 @@
         }
 
         let isMultiple = fileList.length > 1;
-        let fileIds = isMultiple ? fileList.join(',') : fileList[0];
+        let fileIds = isMultiple ? fileList : fileList[0];
         const response = isMultiple ? await multiFileDownloadProc(fileIds) : await fileDownloadProc(fileIds);
 
-        // 파일명 조회
+        // 파일명 추출 부분 수정
         let filename = isMultiple ? 'downloadFile.zip' : 'downloadFile.bin';
-        const filenameRegex = /file[Nn]ame[^;=\n]*=((['"]).*?\2|[^;\n]*)/;
-        const matches = filenameRegex.exec(response.headers['content-disposition']);
-        if (matches != null && matches[1]) {
-          filename = matches[1].replace(/['"]/g, '');
+        const disposition = response.headers['content-disposition'];
+        if (disposition && disposition.includes('filename=')) {
+          const filenameRegex = /filename=["']?([^"';\n]*)["']?/i;
+          const matches = disposition.match(filenameRegex);
+          if (matches && matches[1]) {
+            filename = decodeURIComponent(matches[1]);
+          }
         }
 
-        // 파일 다운로드 생성
-        url = window.URL.createObjectURL(new Blob([response.data]));
-        link = document.createElement('a');
+        // 파일 다운로드 처리
+        const blob = new Blob([response.data]);
+        const url = window.URL.createObjectURL(blob);
+        const link = document.createElement('a');
         link.href = url;
         link.setAttribute('download', filename);
         document.body.appendChild(link);
Add a comment
List