2. JS
[javascript] blob 데이터 이미지 다운로드
자르르
2022. 10. 13. 15:20
//blob 데이터로 된 이미지를 다운받기 위한 기능
//data : blob 데이터
//fileName : 다운로드될 이미지명(확장자 포함)
export function getDownFile(data: any, fileName: string) {
var blob = new Blob([data], {
type: 'application/octet-stream'
});
//IE용
// @ts-ignore
if (window.navigator && typeof window.navigator.msSaveBlob !== 'undefined') {
// IE workaround for "HTML7007: One or more blob URLs were
// revoked by closing the blob for which they were created.
// These URLs will no longer resolve as the data backing
// the URL has been freed."
// @ts-ignore
window.navigator.msSaveBlob(blob, fileName);
} else {
var blobURL = window.URL.createObjectURL(blob);
var tempLink = document.createElement('a');
tempLink.style.display = 'none';
tempLink.href = blobURL;
tempLink.setAttribute('download', fileName); // Safari thinks _blank anchor are pop ups. We only want to set _blank
// target if the browser does not support the HTML5 download attribute.
// This allows you to download files in desktop safari if pop up blocking
// is enabled.
if (typeof tempLink.download === 'undefined') {
tempLink.setAttribute('target', '_blank');
}
document.body.appendChild(tempLink);
tempLink.click();
document.body.removeChild(tempLink);
window.URL.revokeObjectURL(blobURL);
}
}