expressjs / expressjs/multer

Multer diskStorage destination errors on production environment

Open
#655 17 comments 1 reaction 0 assignees View on GitHub
Dominant language
JavaScript
Stars
12.1k
Forks
1.1k
Avg merge
8d 2h
Merged PRs (30d)
21

Description

Hello,

On development environment code below works properly but on production nothing works.When I opened logs there are this error: Error OccuredError: ENOENT: no such file or directory, open 'public/images/8c3f666974_kiwi.png'.2 days I am trying to resolve it but... no result I try many things read many articles but nothing ... What is the problem?I read all multer documentation and I think I am implementing it properly?

This is code:

```js
const express = require("express");
const router = express.Router();
const multer = require('multer');
const db = require("../connection/databaseConn");
const Product = require("../models/Product");
const encryption = require("../encryption/encryption");
const path = require('path')

let storage;
let upload;

router.get("/upload",(req,res)=>{

res.render("upload");

});

let imagesNames = [];

new Promise((resolve, reject)=>{
resolve(
storage = multer.diskStorage({
destination: function (req, file, cb) {
cb(null,"public/images/")
},
filename: function (req, file, cb) {

let imageId = encryption.generateId();
let imageNameWithId = imageId.substr(0,10);
imagesNames.push({name:imageNameWithId,id:imageId});
let fileName = "" + imageNameWithId + "_" + file.originalname;

cb(null, fileName)
}
}))

}).then((storage)=>{
upload = multer({storage:storage}).any();
})

router.post('/upload', function(req, res) {

upload(req, res, function(err) {

if(err) {
console.log('Error Occured' + err);
return;
}
let files = req.files;


Product.findById(req.session.productId).then((p)=>{
for(let i = 0; i < files.length;i++){

p.images.push({imageId:imagesNames[i].id,imageName :"/static/images/" + imagesNames[i].name + "_" + files[i].originalname});

}

p.save();

}).then(()=>{

req.session.addMessage = "Product created!";
res.redirect("/categoriesLoad");

});
})

});

module.exports = router;
```

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.