개발자의 길

[javascript] blob 데이터 이미지 다운로드 본문

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);
    }
}


이 포스팅은 쿠팡 파트너스 활동의 일환으로, 이에 따른 일정액의 수수료를 제공받습니다.
공유하기 링크
Comments