2014-02-19 44 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内容,所以为了允许用户下载文件,我在成功功能中添加了这些行:

​​

但我所拥有的只是一个ERR_INVALID_URL,或者当我从uriContent中移除“base64”时打开生成的文件时失败。

有没有人有任何想法我可以使用数据响应?我去了here,但它并不是很好。 谢谢!

。 bjorge。

+0

恐怕,客户端(即JavaScript)没有什么可以做的。 必须更改服务器端编码,以便生成url链接(指向pdf文件)并将其作为响应的一部分发送。用户可以从url链接下载pdf。 – kcak11

回答

0

客户端(即JavaScript)没有什么可以做的。

服务器端编码必须更改,以便生成url链接(指向pdf文件)并作为响应的一部分发送。用户可以从url链接下载pdf。

+0

我知道我无法在服务器上创建文件,但我认为我可以使用其内容生成文件。不幸的是,我无法实现一个针对我的文件的单击事件,因为它在服务器上没有物理存在,它是由BusinessObject实时生成的。不管怎样,谢谢你 ! 。 bjorge。 – bjorge

0

您无法使用JavaScript创建文件,JavaScript无法访问写入文件,因为这至少会带来巨大的安全风险。

要实现您的功能,您可以实现点击事件的目标到您所需的文件,它会询问有关将该文件保存到用户。

+0

我知道我无法在服务器上创建文件,但我认为我可以使用其内容生成文件。 不幸的是,我无法实现一个点击事件,它的目标是我的文件,因为它在服务器上没有物理存在,它是由BusinessObject实时生成的。 无论如何谢谢你! 。 bjorge。 – bjorge

相关问题