JavaScript 读取二进制数据 (application/octet-stream) 并保存到文件
以下是一个示例代码,使用 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。
原文地址: https://www.cveoy.top/t/topic/m0pW 著作权归作者所有。请勿转载和采集!