从http响应正文下载文件

时间:2015-12-31 12:34:11

标签: javascript angularjs

我现在已经研究了很长一段时间了,找不到明确的答案/解决问题的方法。

情况是这样的:我正在向服务器发送一个帖子请求。响应包含其正文中的pcap文件的二进制文件。如何将其作为文件下载。

我的简化代码:

...
this.downloadPcap = function(timestamp){
  var start = timestamp-10;
  var end = timestamp+10;
  var requestData = {"start": start, "end": end};
  $http.post(serverUrl, requestData);
}

这是通过单击触发的,其中我获取某个事件的时间戳,服务器在确切事件之前和之后的10秒内创建PCAP文件。

我收到一个带有长二进制文件的回复。 另外:

  

内容长度:134772

     

Content-Type:application / pcap

现在有人告诉我,如果标题是这样的,浏览器会自动开始将响应下载为文件。它没有。

所以我对Blob和FileSaver的了解很少,但我觉得必须有一种更简单的方法来下载动态创建的文件。

有人可以指点我某个方向吗?没有比包含更多库更简单的方法吗?

提前致谢

1 个答案:

答案 0 :(得分:2)

海狸在这里指出了答案:https://stackoverflow.com/a/20904398/5459561

完美的作品!我个人正在下载PCAP,编码方式不同,但其余的都有效!

  

$ http服务返回一个promise,它有两个回调方法,如下所示。

[1-9]\d{3,}|[2-9]\d{2}|1[3-9]\d|12[3-9]