File对象转化为buffer数组
const onUpload = async (File: any) => {
const reader = new FileReader();
// 读取文件内容,结果用data:url的字符串形式表示
reader.readAsArrayBuffer(File.raw);
reader.onload = function (e: any) {
//这个是获取到byte数组
console.log(e.target.result);
//basedata是之前定义的变量
const basedata = e.target.result;
const binaryData = new Uint8Array(basedata);
console.log(binaryData);
console.log("二进制转化完成")
}
}
文件转为二进制
function fileParse(file: any, type: any) {
const caseType: any = {
'base64': 'readAsDataURL',
'buffer': 'readAsArrayBuffer'
}
const fileRead: any = new FileReader()
return new Promise(resolve => {
fileRead[caseType[type]](file)
fileRead.onload = (res: any) => {
resolve(res.target.result)
console.log(res.target.result);
}
})
}
//使用方法
// fileParse(File.raw, 'buffer')
上传文件分片
const chunkSize = 30 * 1024 * 1024; // 分片大小
const file = File.raw // 文件
const fileSize = File.size // 文件大小
let chunkCount = Math.ceil(fileSize / chunkSize) // 分片数量
if (chunkSize > fileSize) { // 文件过小就一片
chunkCount = 1
}