Axios 파일 다운로드 만들기
Axios 파일 다운로드 요청하기
import axios from "axios";
axios({
url: "http://localhost:4000/filename.jpg", // 파일을 다운로드할 URL
method: "GET", // GET or POST
responseType: "blob" // 응답 데이터 타입
})
.then(res => {
// 서버에서 받아온 데이터( 바이너리 데이터 )를 blob으로 변환시켜줍니다.
// 특정 타입을 정의해야 할 경우 MIME Type을 설정할 수 있습니다. { type: "text/plain" } / { type: "image/*" } } 등등
const blob = new Blob([res.data]);
// 객체 URL을 생성해줍니다.
const fileUrl = URL.createObjectURL(blob);
// URL을 설정할 a 링크를 만들어줍니다.
const link = document.createElement("a");
link.href = fileUrl;
// 파일의 이름을 지정해줍니다.
link.download = "파일의 이름";
// 링크를 body에 추가시키고, click Event를 발생시켜서 다운로드를 실행해줍니다.
link.click();
link.remove();
// 다운로드 종료 후, 기존 객체 URL을 해제시켜줍니다.
URL.revokeObjectURL(fileUrl);
)
.catch(err => console.log(err));
Axios를 사용하면 위 코드처럼 서버에 요청을 하게됩니다.
위 코드에서 가장 중요한 부분은 responseType부분입니다. 서버에서 전달받은 데이터 유형을 의미하는 값으로서 파일 다운로드 기능을 구현 할 경우 "blob"으로 설정되어야 합니다.
'JavaScript | TypeScript > Javascript 시작하기' 카테고리의 다른 글
| [ Javascript ] 마우스 우클릭 이벤트 ( onContextMenu ) (0) | 2023.04.06 |
|---|---|
| [ Javascript ] 구조 분해 할당에 대하여 (0) | 2023.01.29 |
| [ Javascript ] 클릭시 새로운 창에 이미지 띄우기 (0) | 2023.01.04 |
| [ Javascript ] readline 모듈 ( 콘솔에서 입력받기 ) (0) | 2022.10.05 |
| [ Javascript ] 이벤트 (0) | 2022.07.05 |