定义一个公共方法:
export const file2Uint8Array = (file) => new Promise((resolve) => {
//file 为上传文件
const reader = new FileReader();
reader.readAsArrayBuffer(file);
reader.onload = function () {
const bytes = new Uint8Array(this.result);
const bytesArray = [];
for (let i = 0; i < bytes.length; i++) {
bytesArray.push(bytes[i]);
}
resolve(bytesArray);
};
});
在对应的页面引入:
import { file2Uint8Array } from '@/utils';
调用该方法返回对应的byte数组:
const handleImport = async () => {
// let array = [];
// for (const file of formState.fileList) {
// const res = await file2Uint8Array(file.originFileObj);
// array.push(res);
// }
// console.log(array);
// 上面是多个文件解析上传,返回array数组里面对应上传文件
const dataBlod = await file2Uint8Array(formState.fileList[0].originFileObj);
// dataBlod为返回的byte数组
const obj = {
data: dataBlod,
filename: formState.fileList[0].name,
method: formState.value
};
if (dataBlod.length > 0) {
apis.domain
.resolverImport(appStore.rowAnalytic.id, { ...obj })
.then((res) => {
emit('parse-import', res.batchOperationLogId);
})
.finally(() => {});
}