mtyy233
mtyy233
  • 发布:2023-08-29 10:40
  • 更新:2023-08-29 16:58
  • 阅读:315

【报Bug】为什么上传组件进度返回的大小与实际文件大小不一致

分类:uni-app

产品分类: uniapp/H5

PC开发环境操作系统: Windows

PC开发环境操作系统版本号: WIN10

HBuilderX类型: 正式

HBuilderX版本号: 3.8.12

浏览器平台: Edge

浏览器版本: 115.0

项目创建方式: HBuilderX

操作步骤:

uni.chooseImage和uni.uploadFile 配合 onProgressUpdate 就能实现

预期结果:

进度里返回的大小需要和选择文件返回的一样

实际结果:

进度里返回的大小需要和选择文件返回的不一样

bug描述:

如图: 选择文件返回的大小是size:4286,换算一下是4.19kb
在监听上传组件的onProgressUpdate函数里

task.onProgressUpdate((res) => {  
                        console.log('当前文件下标:上传进度' + index + "," + res.progress);  
                        console.log('已经上传的数据长度' + res.totalBytesSent + ",格式化:" + this.myFunction(res  
                            .totalBytesSent));  
                        console.log('预期需要上传的数据总长度' + res.totalBytesExpectedToSend + ",格式化:" + this.myFunction(res  
                            .totalBytesExpectedToSend));  

输出日志为:
已经上传的数据长度4849,格式化:4.74 KB
预期需要上传的数据总长度4849,格式化:4.74 KB

2023-08-29 10:40 负责人:无 分享
已邀请:
w***@gmail.com

w***@gmail.com

它底层是调用html5+的uploader上传的,它用的是multipart/form-data,也就是文件会被分成多段传输,而这一是每段都要增加http协议的控制部分,二是分成了多段,所以传输总量就要多一些了。所以我猜测它这是需要传输的数据总量,包括http协议的部分和文件部分。

要回复问题请先登录注册