Vod上传大文件出现 BASE64出错,小文件没有问题(2)
来源:10-6 视频授权播放功能开发

唐荣涛
2023-10-22
1.进过后端file模块的Debug后,进一步发现一下问题
上传小文件时,shard字段是有值传入的,说明前端的bie-flie.vue(vod.vue是依赖于此组件)组件中
base64是转化了的
但是上传大文件时,shard字段就是空值,才导致报错
分片的代码如下:
/**
* 将分片数据转成base64进行上传
*/
upload (param) {
let _this = this;
let shardIndex = param.shardIndex;
let shardTotal = param.shardTotal;
let shardSize = param.shardSize;
let fileShard = _this.getFileShard(shardIndex, shardSize);
// 将图片转为base64进行传输
let fileReader = new FileReader();
Progress.show(parseInt((shardIndex - 1) * 100 / shardTotal));
fileReader.onload = function (e) {
let base64 = e.target.result;
// console.log("base64:", base64);
param.shard = base64;
axios.post(process.env.VUE_APP_SERVER + '/file/admin/'+ _this.url , param).then((response) => {
let resp = response.data;
console.log("上传文件成功:", resp);
Progress.show(parseInt(shardIndex * 100 / shardTotal));
if (shardIndex < shardTotal) {
// 上传下一个分片
param.shardIndex = param.shardIndex + 1;
_this.upload(param);
} else {
Progress.hide();
_this.afterUpload(resp);
$("#" + _this.inputId + "-input").val("");
}
});
};
fileReader.readAsDataURL(fileShard);
},
写回答
1回答
-
甲蛙
2023-10-26
这样看不出来问题,有问题就把相关的参数打印出来,看是不是对的。你可以把前端的shardSize shardIndex shardTotal打印出来,看和自己预想的是不是一致
00
相似问题