Bas*_*der 6 javascript rest angularjs
我正在使用带有REST API的AngularJs.我没有掌握REST API.我可以通过发送REST请求来存储带有API的数字对象.我也可以通过GET请求得到它.请求需要一些特定的标头.
我的目标是为用户提供"下载并另存为"链接.现在,在点击事件中我发出请求:
this.file = function (file) {
var url = config.domain + 'file/' + file;
var methods = resource(url, null, {
'get': {
method:'GET',
headers:{ 'Authorization' : user.auth,
'secret-key' : user.secretkey}
}
transformResponse : function(data, headersGetter){
return {content:data}; //transform octet stream into text, angular returns an array containing 1 character per element.
},
});
return methods;
};
Run Code Online (Sandbox Code Playgroud)
在返回正文中我有文件内容(见下文).我想下载它.这怎么可能 ?请注意,我无法将文件存储为URL.
是否可以打开一个窗口,让其余的调用好的标题并保存文件?
编辑
我需要解决方案才能与50Mo文件一起使用.
我有一个PDF文件内容的例子:
%PDF-1.7
£´ÅÖçø
2 0 obj
[/ICCBased 3 0 R]
endobj
3 0 obj
<<
/Filter /FlateDecode
/Length 2596
/N 3
>>
stream
xwTSÙϽ7½PÐkhRH
½H.*1 JÀ"6DTpDQ¦2(à£C±"Q±ëDÔqpIdß¼yïÍß÷~k½ÏÝgï}ÖºüÂLX ¡XáçÅg`ðlàp³³BøF|Ølø½º ùû*Ó?Áÿ¹Y"1PçòøÙ\É8=W%·Oɶ4MÎ0JÎ"Y2Vsò,[|öe9ó2<ËsÎâeðäÜ'ã9¾`çø¹2¾&ctI@Æoä±|N6(Ü.æsSdl-c(2- ãyàHÉ_ðÒ/XÌÏËÅÎÌZ.$§&\SáÏÏMçÅÌ07#â1ØYárfÏüYym²";Ø8980m-m¾(Ô]ü÷v^îDøÃöW~
°¦eµÙúmi]ëP»ýÍ`/²¾u}qº|^RÄâ,g+«ÜÜ\Kk)/èïúC_|ÏR¾Ýïåaxó8t1C^7nfz¦DÄÈÎâpùæøþuü$¾/ED˦L Lµ[ÈB@øøÃþ¤Ù¹ÚøÐX¥!@~(* {d+Ðï}ÆGùÍÑûÏþ}W¸LþÈ$cGD2¸QÎìüZ4 E@ê@èÀ¶À¸àA(q`1àD µ `'¨u 46ptcà48.Ë`ÜR0)ð
Ì@ÈRt CȲXäCP%CBH@ë R¨ªê¡fè[è(tº
C· Qhúz#0 ¦ÁZ°l³`O8ÁÉð28.·Àp|îOÃàX
?§:¢0ÂFBx$ !«¤i@Ú¤¹H§È[EE1PLÊ⢡V¡6£ªQP¨>ÔUÔ(j
õMFk¢ÍÑÎèt,:.FW Ðè³èô8ú¡c1L&³³³Ó9Æa¦±X¬:Öë
År°bl1¶
{{{;}#âtp¶8_\<N+ÄU
[.....]
Run Code Online (Sandbox Code Playgroud)
我想你可以使用blob,比如
var content=...the content of your request;
var mypdf = new Blob(content, {type : 'application/pdf'});
Run Code Online (Sandbox Code Playgroud)
并在另一个问题中检查"panzi"的答案使用HTML5/Javascript生成并保存文件
(数组中每个元素一个字符看起来非常漂亮.可能你不需要转换它.https://developer.mozilla.org/en-US/docs/Web/API/XMLHttpRequest/Sending_and_Receiving_Binary_Data)
感谢大家帮助寻找解决方案。
我无法在 javascript 和客户端应用程序中找到令人满意的解决方案。我将创建一个与 API 通信的代理类。
这将发送带有安全标头的 REST 请求,并提供文件内容作为响应。
此类将由 HTTP GET 请求调用,因此借助正确的响应标头,可以轻松管理“另存为”过程。
归档时间: |
|
查看次数: |
28713 次 |
最近记录: |