2013-03-02 3 views
1

"pdf 다운로드"라는 버튼이 포함 된 backbonejs보기가 있습니다. pdf가있는 곳에서도 URL을 사용할 수 있습니다. 사용자가 버튼을 클릭하면 PDF 파일이 다운로드됩니다. 가능한가?버튼을 클릭 할 때 pdf를 다운로드하도록 강요합니다.

편집 :, 버튼을 사용하여 링크를 사용하여 PDF 파일의 URL에 href 속성을 설정하지 마십시오 backbone.js

savendownload: function() { 
    this.$("#saveanddownload").button('loading'); 

    var that = this; 
    var formData = this.fetchData(); 
    if (formData) window.invoices.create({ 
    buyer: formData.buyer, 
    items: formData.items, 
    company: formData.company, 
    action: "savendownload" 
    }, { 
    wait: true, 
    success: function (model) { 
     var data = model.toJSON(); 

     var filename = data.filename; 
     //download code here 
    } 
    }); 
} 
+0

가능한 복제본 : http://stackoverflow.com/questions/3077242/force-download-a-pdf-link-using-javascript-ajax-jquery – Chris

답변

0

에서 내보기 코드. 브라우저는 사용자의 브라우저 환경 설정에 따라 파일 다운로드를 처리합니다.

<a href="your/file.pdf" /> 

링크가 버튼처럼 보이게하려면 CSS를 사용하여 스타일을 지정할 수 있습니다. 예를 들어 SO thread을 참조하십시오.

편집 : AFAIK, 자바 스크립트에서 파일 다운로드를 안정적으로 초기화 할 수 없습니다. 당신이 할 수있는 것은 당신의 PDF URL로 새 창/탭을 열 수 있습니다 :

window.open("http://domain.com/document.pdf",'_blank'); 

그러나 생성되는 것을 새 창을 차단할 수 있습니다 사용자의 브라우저. 다운로드 링크를 생성하기 만하면됩니다.

$('<a>Click here to download PDF</a>').attr('href', filename).appendTo(that.$el); 

그리고 사용자가 링크를 클릭하여 파일 다운로드를 시작하도록 할 수 있습니다.

+0

내 편집을 참조하십시오. – beNerd

+0

@beNerd, 아마도 포함 시켰어야합니다. 원래 질문에서 ... 어쨌든, 대답을 편집했습니다. 은색 탄환은 없습니다. – jevakallio

+0

이 작업은 가능하지만 응답을 요구하는 서버는 강제로 다운로드하려는 경우 Content-Disposition 헤더를 "첨부 파일"로 설정해야합니다. http://stackoverflow.com/questions/8875949/how-to-implement-content -disposition-attachment – Ben

관련 문제