如何避免更改BLOB大小?
问题描述:
我通过XMLHttpRequest
索取一些数据。 当我尝试将结果保存为文件时,我已经更改了文件的大小,并且文件变得无法读取。如何避免更改BLOB大小?
args.response.length
//9214
new Blob([args.response], {type: args.mime})
//Blob {size: 12252, type: "application/vnd.ms-excel;charset=utf-8"}
我怎么能避免这种重新编码和保存文件,因为它的响应?
答
XMLHttpRequest
返回几种类型的数据之一。 DOMString,ArrayBuffer,Blob,Document,JSON,Text和浏览器特定类型。你可以在这里看到它们:https://developer.mozilla.org/en-US/docs/Web/API/XMLHttpRequest/response
更可能的类型就像一个字符串,其长度比字节表示更短(由于2字节字符等)。
答
PaulBGD的答案我找到了解决办法。 XMLHttpRequest
给我返回的空responseType
被视为DOMString
。我只是说
xhr.responseType = 'blob';
打开请求后,它的伟大工程。
什么是'args.response'?什么是'args.responseType'?它已经应该是一个blob,所以你不必改变任何东西。 – Bergi