복붙노트

[JQUERY] JS 또는 쿼리를 통해 강제로 다운로드

JQUERY

JS 또는 쿼리를 통해 강제로 다운로드

해결법


  1. 1.당신은 자바 스크립트, HTTP 헤더 필요가 서버 측에서 설정 될 수에서 해당 동작을 강제 할 수 없습니다

    당신은 자바 스크립트, HTTP 헤더 필요가 서버 측에서 설정 될 수에서 해당 동작을 강제 할 수 없습니다

    Content-disposition=attachment; filename=some.file.name
    

    당신이 문제를 해결할 수있는 방법은 AJAX 방법은 PDF의 URL로 사용자를 리디렉션하도록하는 것입니다 :

    location.replace('path/to.pdf');
    

    (HTTP 헤더 위는 PDF 설정해야합니다)

    최신 정보

    이 답변의 시간에, 그것은 불가능했다. 지금은 다른 대답은 그렇게 말을 볼 수 아래로 스크롤된다.


  2. 2.HTML5의 출현으로 당신은 앵커 태그의 새로운 속성 다운로드를 사용할 수 있습니다.

    HTML5의 출현으로 당신은 앵커 태그의 새로운 속성 다운로드를 사용할 수 있습니다.

    코드는 같을 것이다

    <a download="name_of_downloaded_file" href="path/to/the/download/file"> Clicking on this link will force download the file</a>
    

    그것은 파이어 폭스와 크롬의 최신 버전에서 작동합니다. 나는 IE에서 그것을 확인하지 않았 음을 언급 하는가? :피

    sstur에서 코멘트 후 다운로드 속성을 편집

    https://caniuse.com/#feat=download


  3. 3.동적 링크를 만들고 파일로 힘을 다운로드 다운로드 속성을 클릭 :

    동적 링크를 만들고 파일로 힘을 다운로드 다운로드 속성을 클릭 :

    var anchor = document.createElement('a');
    anchor.href = this.props.download_url;
    anchor.target = '_blank';
    anchor.download = this.props.file_name;
    anchor.click();
    

    그것은 빠르고, 그래서 난 심지어 DOM에 추가하지 않았다 통지를 가져 가라.

    P.S 다운로드 속성은 IE에서 작동하지 않습니다. 그러나 그것은 단지 새 탭에서 링크를 엽니 다. http://caniuse.com/#feat=download


  4. 4.아니 이것은 단지 JQuery와 / 자바 스크립트로 할 수 없습니다.

    아니 이것은 단지 JQuery와 / 자바 스크립트로 할 수 없습니다.

    당신은 당신의 요청 된 파일을 다운로드하려면 브라우저를 강제하는 콘텐츠 형식 (HTTP 헤더)와 함께 당신에게 파일을 반환하는 서버 측 스크립트가 필요합니다. 콘텐츠 유형에 대한 가능한 값은 응용 프로그램 / 강제로 다운로드 될 것입니다.


  5. 5.아니, 불가능하며 하나님 께 감사가 아니다. 당신은 당신이 그것을 알고 있기없이 웹 사이트를 방문 할 때 그렇지 않으면 나는 종류의 파일이 컴퓨터에 저장 될 수 있는지의 상상력을 둡니다.

    아니, 불가능하며 하나님 께 감사가 아니다. 당신은 당신이 그것을 알고 있기없이 웹 사이트를 방문 할 때 그렇지 않으면 나는 종류의 파일이 컴퓨터에 저장 될 수 있는지의 상상력을 둡니다.

    @ 폴 D. 화이트와 연관된 기본 프로그램과 함께 당신이 (브라우저 내부) 파일 인라인을 열려면 코멘트 섹션에서 지적했듯이 당신은 서버가 내용 ​​- 처리 HTTP 헤더를 보내도록 할 수있다. 예를 들면 :

    Content-Disposition: inline; filename=foo.pdf
    
  6. from https://stackoverflow.com/questions/5192917/force-download-through-js-or-query by cc-by-sa and MIT license