download Blob file
excel 파일을 blob 형태로 다운로드 받아야 하는데, 할 줄 몰라서 헤맴…
blob 데이터 다운로드 시 header 에 response type 을 blob 으로 지정해 요청한다.
export function post<T>(url: string, data: T, isResponseTypeBlob?: boolean) {
const config: AxiosRequestConfig = {
baseURL: API_ROOT,
};
if (isResponseTypeBlob) {
config.responseType = 'blob';
}
return axios.post(url, data, config);
}
blob 다운로드 시에만 해당 헤더를 보내도록 했다.
export const downloadResponseTypeBlobFile = (data: any, filename: string, contentType?: string): void => {
const url = window.URL.createObjectURL(new Blob([data], { type: contentType }));
const link = document.createElement('a');
link.href = url;
link.setAttribute('download', filename);
document.body.appendChild(link);
link.click();
document.body.removeChild(link);
};