반응형
프로젝트를 진행하다가 보면 '전체 파일 다운로드' 버튼을 클릭해 여러 개의 파일을 한 번에 다운로드해야하는 경우가 발생했다.
단순하게 개별 파일 다운로드를 반복문으로 처리하면 될 것 같다는 생각이 들었지만, HTTP 는 한개의 파일만 전송이 가능해서 처리중에 다른 요청이 들어가면 중단되고 만다.
따라서 파일 다운로드 요청간에 시간을 지연시켜서 해결을 하였다.
// 다운로드 할 파일 경로 가져오기
$.downloadSelectFile = () => {
let tr = $('.dx-row.dx-data-row.dx-column-lines');
let fl = "";
//console.log(dataGrid.columns.data);
for (data of tr) {
if (data.ariaSelected == 'true') {
fl = $(data).children().children(3).text();
for (list of dtaList) {
if (list.fl.indexOf(fl) > -1) {
$.goAttachments('-', list.fl, 'dta');
$.fnSleep(100);
}
}
}
}
}
//파일 다운로드 간 시간 지연
$.fnSleep = (dTime) => {
const start = new Date().getTime();
while(start + dTime > new Date().getTime());
};
//파일 다운로드
$.goAttachments = function(caseNum, fl, type){
let flPath = ""
if (type != undefined) {
flPath = fl;
} else {
flPath = "/yproject/cas/" + caseNum + "/" + fl;
}
location.href = "../smb/smbFileDownload.wips?fileName=" + flPath;
};
정석적인 방법은 아닌거 같은데 파일 전체 다운로드의 한계치가 10개로 제한되어 있어서 해결 가능했었던거 같다.
반응형
'FE > Javascript' 카테고리의 다른 글
React Custom hook 이용하여 인원 수 체크 하기 (1) | 2024.01.31 |
---|---|
React hook 의 개념과 사용법 (0) | 2024.01.31 |
<Next.js-TypeScript-React> - 1 기본 개요 (0) | 2023.08.07 |
[Javascript] Null, undefined, '' 에 대한 체크 (0) | 2023.05.24 |
[Javascript] File Drag and Drop 구현 (0) | 2023.04.12 |