자바스크립트 : URL을 통해 File 객체로 받기

조회수 130회

안녕하세요

질문 내용을 하기가 애매해서 일단 적어보네요

상황은

URL을 통하여 PDF 파일을 수가 있습니다.

이 URL 경로를 가지고

바로 File 객체로 담을 수 가 있을까요?

음... 코드로 생각하면

let foo = new File( url ); 
// sample url : http://www.africau.edu/images/default/sample.pdf

이렇게 받고 싶은데

검색을 하려해도 어떻게 접근을 해야할지 몰라

답답하네요;;

  • ?? 정말 하고싶으신게 뭐에요? 엽토군 2019.6.28 16:18
  • PDF 파일을 받아서 이미지 파일로 변형할려하는데 잘안되네요;; 조성백 2019.6.28 16:39
  • 에... 그거라면 그냥 https://mozilla.github.io/pdf.js/ 이거 쓰시면 되요. digda 2019.6.28 17:31
  • 물론 CORS 는 허용된 pdf 파일이어야 합니다. digda 2019.6.28 17:31

1 답변

  • 좋아요

    0

    싫어요
    채택 취소하기

    브라우저에서 pdf를 받아서 뭔가를 하고 싶으신것 같은데...

    async function downloadPDF() {
        // blob 형태로 들고 있어야 함.
        const res = await fetch('pdf_link.pdf');
        const blob = await res.blob();
    
        // anchor tag를 통해 다운 받는 방법
        const link = document.createElement('a');
        link.href = URL.createObjectURL(blob);
        link.download = 'something.pdf';
        link.innerHTML = 'download';
        document.body.appendChild(link);
    }
    
    downloadPDF();
    

    제가 해 본 위 코드로 동작은 합니다.

    다만, CORS가 허용된 상황의 pdf만 blob으로 만들 수 있습니다.

    우리가 검색을 찾을 수 있는 대부분의 웹상의 pdf 링크들은 이것이 허용된 상태가 아니기 때문에 아마 불가능 할거에요.

    결국 내가 만든 서버에서 해당 링크에 대한 프록싱을 해서 CORS 허용 헤더를 추가한 pdf를 내려받아야 하는데,

    이럴거면 그 서버에서 서버 프로그래밍을 해서 받고 처리하는게 나은 상황이 될 겁니다.

    • 와............... 너무 감사합니다 ㅠㅠㅠㅠ 조성백 2019.6.28 16:27

답변을 하려면 로그인이 필요합니다.

Hashcode는 개발자들을 위한 무료 QnA 사이트입니다. 계정을 생성하셔야만 답변을 작성하실 수 있습니다.

(ಠ_ಠ)
(ಠ‿ಠ)

ᕕ( ᐛ )ᕗ
로그인이 필요합니다

Hashcode는 개발자들을 위한 무료 QnA사이트 입니다. 계정을 생성하셔야만 글을 작성하실 수 있습니다.