我正在使用Node/Express
从zip文件中提取一些文件。该提取文件的库可以写入磁盘或将文件存储在包含数据缓冲区的数组中。
下游有一些代码以这种格式与Express/Multers
req.files
进行交互。当用户不上传zip
时,此代码将获取所需的内容。用户上载zip时,内容不是这种形式。
有什么方法可以处理这种情况?我目前正在根据req.files
库制作的数组创建一个形状与zip
类似的数组。
// If the payload is a `zip`, unzip and put the files on `req`
const unZippedFiles = await unZipFile(files[0].path, req);
req.files = unZippedFiles;
req.unzippedPath = unzippedPath;
此文件数组与Multer产生的数组具有不同的形状和属性。
// otherwise..just use multer to put files on req
const importFileHandler = multer({
dest,
preservePath: true,
fileFilter: (_req, file, cb) => {
if (fileFilter.isPermitted(file)) {
return cb(null, true);
}
const err = new Error('file type is not allowed');
return cb(null, false, err);
}
}).any();