nodejs загрузить 2 одиночных изображения в 2 разных папки - PullRequest
0 голосов
/ 17 февраля 2020

Я пытаюсь загрузить 2 изображения в другую папку, но получаю ошибки. Я использовал массив для multer, но все еще показывает неожиданное поле или имя файла. Я использую узел в качестве сервера, использующего мультер

мой код

const DIR = './fabric/img/';
const designDIR = './fabric/design/';
const storage = multer.diskStorage({

 destination: (req, file, cb) => {
    cb(null, DIR);
  },
  filename: (req, file, cb) => {
    const fileName = file.originalname.toLowerCase().split(' ').join('-');
    cb(null, fileName)
  }
});
const designstorage = multer.diskStorage({
  destination: (req, file, cb) => {
    cb(null, designDIR);
  },
  filename: (req, file, cb) => {
    const fileName = file.originalname.toLowerCase().split(' ').join('-');
    cb(null, fileName)
  }
});

var upload = multer({
  storage: storage,
  designstorage: designstorage,
  limits: {
    fileSize: 1024 * 1024 * 5
  },
  fileFilter: (req, file, cb) => {
    if (file.mimetype == "image/png" || file.mimetype == "image/jpg" || file.mimetype == "image/jpeg") {
      cb(null, true);
    } else {
      cb(null, false);
      return cb(new Error('Only .png, .jpg and .jpeg format allowed!'));
    }
  }
});

router.post('/fabric', upload.any(), (req, res, next) => {


  const io = req.app.get('io');
  const product = new db.fabric({
    image: req.protocol + "://" + req.hostname + ":" + req.socket.localPort + "/img/" + req.files.filename,
    design: req.protocol + "://" + req.hostname + ":" + req.socket.localPort + "/design/" + req.files.filename,

  });

  product.save().then(result => {
    console.log(result);
    res.status(201).json({
      message: "product added successfully!",
      productCreated: {
        image: result.image,
        design: result.design
      }
    })
    io.emit('productAdded');
  }).catch(err => {
    console.log(err),
      res.status(500).json({
        error: err
      });
  })
})

получил следующую ошибку, когда сообщение от почтальона "image": "http://localhost: 3000 / img / не определен"

1 Ответ

0 голосов
/ 17 февраля 2020

попробуйте с req.files [0] .originalname, req.files [1] .originalname, если не проверить с консолью, вы получите требуемое имя поля

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...