【发布时间】:2016-05-06 07:11:34
【问题描述】:
我有这个问题:
我需要从服务器下载一个 zip 文件,这个 zip 文件包含 .xod 和 .png。 我正在使用 Angular js、java spring 来克服跨域问题,我的 htt.get angular call java spring 控制器它实现了真正的 get 调用。 我必须下载 zip -> 将此 zip 返回到 angular,解压缩,提取文件并将其保存在 IndexedDB 中。
这是我的角度代码:
var req = {
method: 'GET',
url: CONTEXT_PATH+"/services/data/"+meetingId,
headers: {
'Content-Type': undefined
}
}
$http(req).then(function(data){
console.log("rest call done!");
console.log(data);
});
这是java spring代码:
@RequestMapping(value="/data/{meetingId}", method = RequestMethod.GET)
public Buffer getMeeting(@PathVariable(value="meetingId") String meetingId) {
byte[] file = new byte[2048];
Buffer buf =null;
try {
String url = getContentServer()+"/data?username="+getUsername()+"&password="+getPassword()+"&id="+meetingId;
logger.info("start Rest template");
RestTemplate templ = new RestTemplate();
file = templ.getForObject(url, byte[].class);
logger.info("PRE BUF");
buf = ByteBuffer.wrap(file);
logger.info("POST BUF");
} catch (Exception e) {
String msg = "Error retrieving meeting list";
logger.error(msg, e);
}
logger.info("file zip --> "+file.length);
logger.info("buf --> "+buf+" -- buf.array --> "+ buf.array());
return buf;
}
这是 console.log:
对象{数据:“UEsDBBQACAAIAA5IpkgAAAAAAAAAAAAAAAAJAAAAMTYwMzQucG…AcqwpAGxvZ28ucG5nUEsFBgAAAAAAIAAgAuwEAAMa/KQAAAA==”,状态:200,配置:对象,状态文本:“OK”}
我不知道我可以解码这个缓冲区并在客户端提取文件。
谢谢。
【问题讨论】:
标签: javascript java angularjs spring spring-mvc