背景:上传的excel文件需要校验里面的数据是否正确,之前已经有公用的方法解析Excel的Buffer,但是是通过本地文件测试的,但是前端form-data上传的文件数据不太对,直接用XLSX.read(bufferData,{type:‘buffer’})解析不出来正确的数据,所以要通过其他中间件处理,项目有用busboy,我就接着用来解决这个问题,我查资料看还有其他的解决方法(new multiparty.Form())但是不知道行不行,如果有尝试过的可以分享一下
前提:npm install busboy
前端入参:
const formData = new FormData();
formData.append('file', file)
formData.append('fileSize', file.size);
method: 'POST',
data: formData,
后端接收处理:
const busboy = Busboy({ headers: req.headers, defCharset:'utf8' });
busboy.on('file', async (field, filestream, file) => {
filestream.on('data', function(data) {
//data 就是要的数据
console.log('File [%s] got %d bytes', field, data.length);
})
});
busboy.end(req.body);