前端如何获取后端返回 blob 类型数据的总长度
时间: 2024-04-30 10:18:14 浏览: 89
前端可以使用 XMLHttpRequest 对象来获取后端返回的 blob 类型数据的总长度。具体的做法是,在向服务器发送请求时,设置 XMLHttpRequest 对象的 responseType 属性为 "blob",这样服务器返回的数据就会被解析为一个 Blob 对象。然后,可以监听 XMLHttpRequest 对象的 progress 事件来获取数据的总长度,如下所示:
```
const xhr = new XMLHttpRequest();
xhr.open('GET', 'your-api-url', true);
xhr.responseType = 'blob';
xhr.onload = function() {
const blob = xhr.response;
const totalSize = blob.size;
// do something with totalSize
};
xhr.onprogress = function(event) {
if (event.lengthComputable) {
const percentComplete = event.loaded / event.total;
// do something with percentComplete
}
};
xhr.send();
```
在上面的代码中,xhr.onprogress 事件会在接收到服务器返回的数据时触发,event.total 表示数据的总长度,event.loaded 表示已经接收到的数据大小。注意,只有当服务器返回的数据可以被浏览器解析为 Blob 对象时,才能使用上面的方法获取数据的总长度。如果服务器返回的是二进制数据流,需要先将其转换为 Blob 对象才能使用上面的方法。
阅读全文