Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/33.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Node.js 我正在尝试使用multer进行多个上传(视频和图像分别在单独的文件夹中)_Node.js_Express_Multer_Cloudinary - Fatal编程技术网

Node.js 我正在尝试使用multer进行多个上传(视频和图像分别在单独的文件夹中)

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:

云端配置 配置工作正常,我在管理控制台中查看了上传的视频

但是Mutter不是为视频工作的

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));