简体   繁体   中英

How to define static folder path in nodejs multer image upload

I am setting static path but getting error: "Error: ENOENT: no such file or directory, open 'C:\dashboard new - Copy\uploads\2019-11-28T08:11:09.164Z1564660431900.jpg'"

const storage = multer.diskStorage({  destination: function(req, file, cb) { let dest = path.join(__dirname, '../../uploads'); cb(null, dest);  }, filename: function(req, file, cb) {    cb(null, new Date().toISOString() + file.originalname);  }});

const fileFilter = (req, file, cb) => {  if (file.mimetype === 'image/jpeg' || file.mimetype === 'image/png') {    cb(null, true);  } else {    cb(null, false);  }};

const upload = multer({  storage: storage,  limits: {    fileSize: 1024 * 1024 * 5  }, fileFilter: fileFilter});

router.post("/", upload.single('productImage'), async (req, res, next) => {
try {
    cosole.log('hi');
    const product = new Product({
      _id: new mongoose.Types.ObjectId(),
      name: req.body.name,
      price: req.body.price,
      productImage: req.file.path 
    });
    const saveImage = await product.save();
    console.log(saveImage)
    res.json(saveImage);
} catch (error) {
  console.log(error);
  res.json(error);
}

});

How to do this?

I think you need to provide the destination folder as a key and value, something like this(below)

var upload = multer({ dest: 'uploads/' })

You can check out the full multer documentations here https://expressjs.com/en/resources/middleware/multer.html

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM