以下是一个示例代码,使用 XMLHttpRequest 对象读取 'application/octet-stream' 类型的二进制数据并将其写入到本地文件中:

var xhr = new XMLHttpRequest();
xhr.open('GET', 'http://example.com/myfile.bin', true);
xhr.responseType = 'arraybuffer';

xhr.onload = function() {
  if (xhr.status === 200) {
    var blob = new Blob([xhr.response], {type: 'application/octet-stream'});
    var fileName = 'myfile.bin';
    saveAs(blob, fileName);
  }
};

xhr.send();

function saveAs(blob, fileName) {
  var url = URL.createObjectURL(blob);
  var a = document.createElement('a');
  a.href = url;
  a.download = fileName;
  document.body.appendChild(a);
  a.click();
  setTimeout(function() {
    document.body.removeChild(a);
    URL.revokeObjectURL(url);
  }, 0);
}

该代码首先创建一个 XMLHttpRequest 对象,并使用 responseType 属性将响应类型设置为 'arraybuffer'。然后,它在 XMLHttpRequest 对象的 onload 事件处理程序中检查响应状态,并将二进制数据作为 Blob 对象存储。最后,它使用 saveAs 函数将 Blob 对象保存到本地文件中。该函数创建一个 a 元素,设置其 href 属性为 Blob 对象的 URL,设置其 download 属性为指定的文件名,并将其添加到文档中。然后,它模拟用户单击该元素,并在单击后立即从文档中删除该元素,并使用 URL.revokeObjectURL 函数释放 Blob 对象的 URL。

JavaScript 读取二进制数据 (application/octet-stream) 并保存到文件

原文地址: https://www.cveoy.top/t/topic/m0pW 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录