读取blob的内容:http:// javascript

时间:2017-02-21 15:27:21

标签: javascript blob filereader

这可能是一个相对简单的答案,我可能会严重忽略它。

我正在使用一个API来打包我们的一些数据并将其发送给我一个blob。它提供了一个URL,例如blob:http://localhost:3001/somenumber

我假设这个网址是我的文件所在的位置?当我在浏览器中手动点击该URL时,它会下载我需要的文件(只是数据的基本对象)。但是,我似乎无法实际获取此文件以输出数据,因此我可以在我的客户端代码/ javascript中处理它。我用FileReader系统搞错了但没有成功。

任何帮助都会很棒。基本上,我想获取DB服务提供给我的blob url,并读取其内容,以便将数据输出到视图中。

谢谢!

1 个答案:

答案 0 :(得分:2)

你可以读取这样的数据:

var req = new XMLHttpRequest();
req.open("GET", "http://localhost:3001/somenumber", true);
req.responseType = "arraybuffer";

req.onreadystatechange = function(event) {
  if (req.readyState == 4 && req.status == 200) {
    var blob = new Blob([req.response], {type: "application/pdf"}); // or "image/png", or others...
    var fileURL = URL.createObjectURL(blob); // Create a temp ULR to the data (pdf, image...)
    location.href = fileURL; // switch location to this new URL
  }
};

您可以查看https://developer.mozilla.org/en-US/docs/Web/API/XMLHttpRequest/Sending_and_Receiving_Binary_Data