我使用下面的代碼在JavaScript中加載兩個blob文件。如何比較JavaScript中的兩個blob?
我想比較他們,看他們是否完全一樣。
(blob1 === blob2)正在返回false,即使每個BLOB的報告大小爲574字節。我究竟做錯了什麼?
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
如果你看看我的代碼,你會看到它使用filereader從文本中獲取文本,但是這並不重要,閱讀應該不需要比較兩個blob。 –
@DukeDugal:爲什麼閱讀不需要比較兩個斑點?你還想怎麼比較他們,如果不是他們的內容? – Thilo