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

조회수 5993회

안녕하세요

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

상황은

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

이 URL 경로를 가지고

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

음... 코드로 생각하면

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

이렇게 받고 싶은데

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

답답하네요;;

  • (•́ ✖ •̀)
    알 수 없는 사용자

1 답변

  • 브라우저에서 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를 내려받아야 하는데,

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

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

프로그래머스 커뮤니티는 개발자들을 위한 Q&A 서비스입니다. 로그인해야 답변을 작성하실 수 있습니다.

(ಠ_ಠ)
(ಠ‿ಠ)