JavaScriptで2つのBLOBファイルをロードするには、以下のコードを使用します。JavaScriptで2つのブロブを比較するにはどうすればよいですか?
私はそれらを正確に同じであるかどうか見るために比較したいと思います。
(blob1 === blob2)は、報告された各BLOBのサイズが574バイトであっても、falseを返します。私は間違って何をしていますか?
getHTTPAsBlob(url, callback) {
let cacheBust = Math.random().toString()
url = url + '?&cachebust=' + cacheBust
let xhr = new XMLHttpRequest();
xhr.open('GET', url, true);
xhr.responseType = 'blob';
xhr.onload = function (e) {
if (xhr.status == 200) {
// get binary data as a response
let fileData = this.response;
let contentType = xhr.getResponseHeader("content-type")
var reader = new FileReader()
reader.onload = (e) => {
console.log(reader.result)
console.log(fileData)
callback(null, {
Body: reader.result,
Blob: fileData,
ContentType: contentType,
Etag: null,
LastModified: null,
})
}
reader.readAsText(fileData)
} else {
callback(xhr)
}
}
xhr.send();
}
私はあなたがその内容(FileReaderを使用して比較する)を比較したいなら "blob"を読まなければならないと思います。 responseTypeを "arraybuffer"に設定する方が簡単ではないでしょうか。 – Thilo
私のコードを見ると、ファイルリーダを使ってBLOBのテキストを取得するのがわかりますが、それはポイントの横にあり、2つのBLOBを比較するためには読み込みは必要ありません。 –
@DukeDugal:2つのブロブを比較するために読み込みが必要ないのはなぜですか?その内容ではないにもかかわらず、他にどのように比較したいですか? – Thilo