是因为axios库在处理上传进度事件时,只返回了一个简单的事件对象,其中isTrusted属性被设置为true。这是因为axios库使用了浏览器的原生XMLHttpRequest对象来处理网络请求,而isTrusted属性是XMLHttpRequest对象的一个属性,用于指示事件是否由用户操作触发。
在axios中,onUploadProgress是一个回调函数,用于处理上传进度事件。当上传进度发生变化时,axios会调用这个回调函数,并传入一个事件对象作为参数。然而,由于axios的设计和实现方式,这个事件对象只包含了isTrusted属性,其他属性如loaded和total等常用的上传进度信息并没有包含在内。
要获取更详细的上传进度信息,可以使用原生的XMLHttpRequest对象来发送请求,然后通过监听XMLHttpRequest对象的upload事件来获取上传进度。以下是一个示例代码:
const xhr = new XMLHttpRequest();
xhr.open('POST', '/upload', true);
xhr.upload.onprogress = function(event) {
const loaded = event.loaded; // 已上传的字节数
const total = event.total; // 总字节数
const progress = (loaded / total) * 100; // 上传进度百分比
console.log(`上传进度:${progress}%`);
};
xhr.send(formData);
在上述示例中,xhr.upload.onprogress是XMLHttpRequest对象的upload事件的回调函数,通过event参数可以获取到上传进度的详细信息,如已上传的字节数和总字节数。根据这些信息,可以计算出上传进度的百分比,并进行相应的处理。
需要注意的是,使用原生的XMLHttpRequest对象来处理上传进度需要手动处理更多的细节,包括创建FormData对象、设置请求头、处理上传完成等。而axios库则提供了更简洁和易用的API,可以方便地发送各种类型的网络请求,并提供了丰富的配置选项和拦截器功能。
腾讯云相关产品中,可以使用对象存储(COS)服务来存储和管理上传的文件。对象存储是一种高可用、高可靠、低成本的云存储服务,适用于各种场景,包括网站托管、备份与归档、大数据分析、移动应用等。您可以通过腾讯云COS的官方文档了解更多信息:腾讯云对象存储(COS)
请注意,以上答案仅供参考,具体的技术实现和推荐产品可能因实际需求和环境而有所不同。
领取专属 10元无门槛券
手把手带您无忧上云