Node.js 我正在尝试使用multer进行多个上传(视频和图像分别在单独的文件夹中)
云端配置 配置工作正常,我在管理控制台中查看了上传的视频 但是Mutter不是为视频工作的Node.js 我正在尝试使用multer进行多个上传(视频和图像分别在单独的文件夹中),node.js,express,multer,cloudinary,Node.js,Express,Multer,Cloudinary,云端配置 配置工作正常,我在管理控制台中查看了上传的视频 但是Mutter不是为视频工作的 const crypto = require('crypto'); const cloudinary = require('cloudinary'); const cloudinaryStorage = require('multer-storage-cloudinary'); const storage1 = cloudinaryStorage({ cloudinary, folder:
const crypto = require('crypto');
const cloudinary = require('cloudinary');
const cloudinaryStorage = require('multer-storage-cloudinary');
const storage1 = cloudinaryStorage({
cloudinary,
folder: 'bat1',
allowedFormats: ['jpeg', 'jpg', 'png'],
filename: function (req, file, cb) {
let buf = crypto.randomBytes(16); //generating random 16 Bytes
buf = buf.toString('hex'); //Converting to hex will give 32 CHARACTERS & converting to string
let uniqFileName = file.originalname.replace(/\.jpeg|\.jpg|\.png/ig, ''); //RegEx used to remove file expression
uniqFileName += buf; //These CHARACTERS will be added to the filename
//Even though the user creates file with same name it will not MATCH bcz of CHARACTERS
cb(undefined, uniqFileName );
}
});
const storage2 = cloudinaryStorage({
cloudinary,
allowedFormats: ['mp4', 'webm', 'ogg'],
params:{
folder: 'bat1video',
resource_type: 'video'
},
filename: function (req, file, cb) {
let buf = crypto.randomBytes(16);
buf = buf.toString('hex');
let uniqFileName = file.originalname.replace(/\.mp4|\.webm|\.ogg/ig, '');
uniqFileName += buf;
cb(undefined, uniqFileName );
}
});
module.exports = {
cloudinary,
storage1,
storage2
}
在路线上,我正在这样做
我可以像这样使用上传1和上传2吗?或者每个文件只能上传一次
对于图像,它可以很好地工作,但对于视频,它不能
const { storage1, storage2 } = require('../cloudinary');
const upload1 = multer({ storage:storage1 });
const upload2 = multer({ storage:storage2 });
对于图像,它工作得很好
router.post('/', isLoggedIn, upload1.array('postImages', 4), asyncErrorHandler(fnc));
但对于视频来说,它不是。
视频保存在云计算中,当在后端访问时,req.files
为未定义文件
router.post('/', isLoggedIn, upload1.array('postVideo', 4), asyncErrorHandler(fnc));