반응형
특정 API에서 파일 다운로드를 제공할 때, 이를 받아들이는 Javascript 예제.
파일명은 API의 Header에 'Content-Disposition' 값에서 가져온다.
fetch('/api/download')
.then(response => {
if (!response.ok) {
throw new Error('Network response was not ok');
}
// Content-Disposition 헤더에서 파일명 추출
const contentDisposition = response.headers.get('Content-Disposition');
const filenameRegex = /filename="?([^"]+)"?/i;
const matches = filenameRegex.exec(contentDisposition);
const filename = matches && matches[1];
return response.blob();
})
.then(blob => {
const url = window.URL.createObjectURL(blob);
const link = document.createElement('a');
link.href = url;
link.setAttribute('
download', filename || 'download.bin'); // 파일명이 없을 경우 기본값 설정
document.body.appendChild(link);
link.click();
window.URL.revokeObjectURL(url);
})
.catch(error => {
console.error('Error:', error);
});
반응형
'Programming > Javascript' 카테고리의 다른 글
자바스크립트 정적사이트 생성기 11ty (eleventy 일레븐티) 시작하기2 (0) | 2023.07.24 |
---|---|
자바스크립트 정적사이트 생성기 11ty (eleventy 일레븐티) 시작하기 (2) | 2023.07.23 |
정적 사이트 생성기 (SSG, Static Site Generator) 로 나만의 블로그를 만들어보자 (0) | 2023.07.20 |
자바스크립트 slice, splice ,split의 활용과 차이점 (0) | 2023.06.29 |
Nuxt 프로젝트 Netlify에 배포하기 / 외부 도메인 적용하기 (0) | 2023.06.23 |