2014-02-19 2 views
0

BusinessObject RESTful API를 사용하여 생성 된 (pdf 또는 xls) 문서를 다운로드하려고합니다.javascript를 사용하여 이진 문자열에서 파일을 작성하는 방법

$.ajax({ 
url: server + "/biprws/raylight/v1/documents/" + documentId, 
type: "GET", 
contentType: "application/xml", 
dataType: "text", 
headers: {"X-SAP-LogonToken": token, "Accept": "application/pdf" }, 

success: function(mypdf) { 
    // some content to execute 
} 
}); 

내가 응답으로이 데이터를 수신 :

나는 다음과 같은 요청을 사용하고

%PDF-1.7 
%äãÏÒ 
5 0 obj 
<</Length 6 0 R/Filter/FlateDecode>> 
//data 
//data 
//data 
%%EOF 

내가 먼저는, base64로 내용이었다 가정을 사용자를 허용하기 위해 너무 파일을 다운로드하려면 성공 함수에 다음 줄을 추가했습니다.

var uriContent = "data:application/pdf; base64," + encodeURIComponent(mypdf); 
var newWindow=window.open(uriContent, 'generated'); 

ERR_INVALID_URL 또는 uriContent에서 "base64"를 제거 할 때 생성 된 파일을 여는 동안 오류가 발생했습니다.

데이터 응답을 사용하는 방법에 대해 알 수있는 사람이 있습니까? 나는 here에 갔다. 그러나 그것은 지옥이 아니었다. 감사합니다.

. 비죠.

+0

클라이언트 측 자바 스크립트에서 수행 할 수있는 작업은 많지 않습니다. URL 링크가 생성되고 (pdf 파일 가리키고) 응답의 일부로 전송되도록 서버 측 코딩을 변경해야합니다. 사용자는 URL 링크에서 pdf를 다운로드 할 수 있습니다. – kcak11

답변

0

클라이언트 측 즉 자바 스크립트에서 수행 할 수있는 작업은 많지 않습니다.

URL 링크가 생성되고 (pdf 파일 가리키고) 응답의 일부로 전송되도록 서버 측 코딩을 변경해야합니다. 사용자는 URL 링크에서 pdf를 다운로드 할 수 있습니다.

+0

서버에 파일을 만들 수 없다는 것을 알고 있었지만 내용을 사용하여 파일을 생성 할 수 있다고 생각했습니다. 불행히도 서버에 물리적 인 존재가 없으므로 내 파일을 대상으로하는 클릭 이벤트를 구현할 수 없습니다.이 이벤트는 BusinessObject에서 즉시 생성됩니다. 어쨌든 고마워! . 비죠. – bjorge

0

자바 스크립트를 사용하여 파일을 만들 수 없으므로 자바 스크립트는 파일 작성에 대한 액세스 권한이 없습니다. 이는 최소한의 보안 위험 부담이 될 수 있습니다.

기능을 구현하려면 원하는 파일을 대상으로하는 클릭 이벤트를 구현하면 해당 파일을 사용자에게 저장할지 묻는 메시지가 표시됩니다.

+0

서버에 파일을 만들 수 없다는 것을 알고 있었지만 내용을 사용하여 파일을 생성 할 수 있다고 생각했습니다. 아쉽게도 서버에 물리적으로 존재하지 않으므로 내 파일을 대상으로하는 클릭 이벤트를 구현할 수 없습니다.이 이벤트는 BusinessObject에서 즉시 생성됩니다. 어쨌든 고마워요. ! . 비죠. – bjorge

관련 문제