https://avoc-o-d.tistory.com/91
[React/JS] CORS 에러 해결하기(이미지 URL을 API 요청, 이미지 URL로 Blob, Blob로 File 생성)
https://velog.io/@zero-black/CORS-%EC%97%90%EB%9F%AC-%ED%95%B4%EA%B2%B0%ED%95%98%EA%B8%B0-Reverse-Proxy-server-%EA%B5%AC%EC%B6%95-with-Nginx CORS 에러 해결하기 + Reverse Proxy server 구축 with Nginx 위와 같이 React에서 외부 api로 요청을
avoc-o-d.tistory.com
fetch하실 때, CORS 에러가 날 시 참고해주세요!
const convertUrlToFile = async (url) => {
const response = await fetch(url);
const data = await response.blob();
const filename = url.split("/").pop(); // url에서 파일명 추출
const ext = url.split(".").pop(); // url에서 이미지 형식 추출
const metadata = { type: `image/${ext}` };
return new File([data], filename, metadata);
};
결론적으로 코드는 위와 같습니다!
"https://이미지이름.jpg";
예를 들어, 위와 같은 이미지 url이 있다고 할게요!
1. response.blob() : 응답을 Blob(타입이 있는 바이너리 데이터) 형태로 반환 (주로 이미지 데이터를 처리할 때 사용)
2. .split("/").pop(): "/" 앞에 있는 이미지 이름을 추출
3. .split(".").pop() : "." 앞에 있는 jpg 이미지 형식을 추출
4. { type: `image/${ext}` } : 추출한 이미지 형식을 이용해서 이미지 타입 지정
5. 준비해놓은 파일 속성들로 파일을 만들어 리턴해줍니다~!
'💻 My Work > 🔥 React' 카테고리의 다른 글
[React/JS] useRef 여러 개 한번에 선언하기(useRef 배열 만들기) (0) | 2022.11.06 |
---|---|
[React/JS] CORS 에러 해결하기(이미지 URL을 API 요청, 이미지 URL로 Blob, Blob로 File 생성) (0) | 2022.11.04 |
[React/JS] 서버에 파일 객체(File Object)/이미지 파일 한번에 여러 개 보내기 - FormData (0) | 2022.11.02 |
[React/JS] 요소가 객체(Object)인 배열(array) 컴포넌트 렌더링 / 하나만 추가, 삭제, 업데이트 관리하기 (0) | 2022.10.31 |
[React/JS] 버튼 클릭 시 이미지 업로드, 미리보기 구현하기 (파일 선택 버튼 제거, 커스텀하기) (0) | 2022.10.27 |