【问题标题】:Reading contents of blob:http:// javascript读取blob内容:http://javascript
【发布时间】:2017-02-21 15:27:20
【问题描述】:

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

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

我假设这个 url 是我的文件在哪里?当我在浏览器中手动点击该网址时,它会下载我需要的文件(只是一个基本的数据对象)。但是我似乎无法真正让这个文件输出数据,所以我可以在我的客户端代码/javascript 中处理它。我玩弄了 FileReader 系统,但没有成功。

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

谢谢!

【问题讨论】:

  • 你试过使用 XMLHttpRequest 吗?
  • 大声笑......有时你只是要自嘲。谢谢@lamelemon。就是这样。

标签: javascript blob filereader


【解决方案1】:

你可以这样读取数据:

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

【讨论】:

  • 是的,我太傻了。谢谢。一个基本的获取请求就是它的全部。谢谢大家,@BNilsou。
猜你喜欢
  • 1970-01-01
  • 2019-12-11
  • 2019-01-28
  • 2019-08-20
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-08-18
相关资源
最近更新 更多