我知道,为了在Javascript中将BLOB对象转换为可读格式(URL),我应该使用createObjectURL()方法,对吗?
示例:
var blob = new Blob(["Example"], { type: "text/plain" });
url = window.URL.createObjectURL(blob);
我的问题是:
是否有可能获得BLOB的原始二进制内容?所以,我可以得到类似的东西:
"01000101 01111000 01100001 01101101 01110000 01101100 01100101" // "Example" in binary .
答案 0 :(得分:2)
您可以使用extract the data from the blob FileReader。要获取数字的ArrayBuffer,请使用FileReader.readAsArrayBuffer()
。
要将数组缓冲区转换为0和1的字符串,请创建ArrayBufferView(在这种情况下为Int8array
),spread为数组,然后{{3}使用基数为2的map来查看每个数字的二进制表示形式 - .toString(2)
:
const blob = new Blob(["Example"], { type: "text/plain" });
const reader = new FileReader();
reader.addEventListener("loadend", function() {
const view = new Int8Array(reader.result);
const bin = [...view].map((n) => n.toString(2)).join(' ');
console.log(bin);
});
reader.readAsArrayBuffer(blob);

答案 1 :(得分:1)
您可以使用FileReader将BLOB的内容作为字节数组获取:
var reader = new FileReader();
reader.readAsArrayBuffer(blob);
reader.onloadend = (event) => {
// The contents of the BLOB are in reader.result:
console.log(reader.result);
}
https://developer.mozilla.org/en-US/docs/Web/API/FileReader
https://developer.mozilla.org/en-US/docs/Web/API/Blob#Example_for_extracting_data_from_a_Blob