a태그 이미지 다운로드 구현

2022. 3. 20. 15:24·javascript

이미지를 다운로드 해야하는 기능을 구현하다가 나온이슈가 있어서 정리해 봅니다. 


이미지 다운로드 구현 방법

1. a태그에 href, download 속성을 사용하여 구현합니다. 정말 간단!!!

<a href="이미지 경로" download="내 지정하고 싶은 이미지명"/>

그렇지만!! 변수가 있다는 점

- 같은 출처에 있는 이미지가 아니면 작동하지 않는다.

- ie에서는 작동하지 않는다. 

 

사실 이번작업에 같은출처 이미지가 아니라 a태그를 사용할수는 없었습니다. 

 

2. XMLHttpRequest를 사용하여 직접 blob 을 얻어와 처리 

이 방법으로 하면 교차출처 이미지도 가능하고, ie도 가능하다는 점 입니다!

function downloadImg(url, fileName) {
  var xhr = new XMLHttpRequest();
  xhr.open('GET', url, true);
  xhr.responseType = 'blob';
  xhr.onload = function () {
    var urlCreator = window.URL || window.webkitURL;
    var imageUrl = urlCreator.createObjectURL(this.response);
    var tag = document.createElement('a');
    tag.href = imageUrl;
    tag.download = fileName;
    document.body.appendChild(tag);
    tag.click();
    document.body.removeChild(tag);
  };
  xhr.send();
}

 

 

'javascript' 카테고리의 다른 글

tsconfig.json 기본세팅, d.ts, JSDoc  (0) 2023.02.14
Typescript 기초개념 정리  (0) 2023.02.14
async, await 알아보기  (0) 2022.03.30
프론트개발시 CORS 오류와 해결방법!  (0) 2022.03.20
Promise에 대해 알아보자!  (0) 2021.09.26
'javascript' 카테고리의 다른 글
  • Typescript 기초개념 정리
  • async, await 알아보기
  • 프론트개발시 CORS 오류와 해결방법!
  • Promise에 대해 알아보자!
ssund
ssund
  • ssund
    ssund의 기술블로그
    ssund
  • 전체
    오늘
    어제
    • TECH (82)
      • Next.js (8)
      • React (25)
      • Vite (1)
      • javascript (17)
      • CSS (6)
      • CS (10)
      • AWS (0)
      • Jest (1)
      • CI|CD (0)
      • 알고리즘 (8)
      • Tools (1)
      • Tips (5)
  • 블로그 메뉴

    • 링크

    • 공지사항

    • 인기 글

    • 태그

      커머스프로젝트
      call signatures
      global-style
      Array.sort()
      서버컴포넌트
      TypeScript
      함수와 메서드차이
      react state management
      웹브라우저구성
      app-router
      styled-components
      git배포
      타입스크립트
      theme-provider
      JavaScript
      React
      nextjs
      reat-head
      redux
      배열요소순서
    • 최근 댓글

    • 최근 글

    • hELLO· Designed By정상우.v4.10.0
    ssund
    a태그 이미지 다운로드 구현
    상단으로

    티스토리툴바