@aleshaykovlev
html, css, js, node, webpack, sass, react

Ошибка при загрузке файла?

Ошибка: Error: ENOENT: no such file or directory, open
В корне проекта должна быть папка images, она у меня есть, но все равно эта ошибка, что не так?

Middleware file:
const multer = require('multer');
const storage = multer.diskStorage({
	destination(req, file, cb) {
		cb(null, 'images');
	},
	filename(req, file, cb) {
		cb(null, new Date().toISOString() + '-' + file.originalname);
	}	
});

const allowedTypes = ['image/png', 'image/jpg', 'image/jpeg', 'image/gif'];

const fileFilter = (req, file, cb) => {
	if (allowedTypes.includes(file.mimetype)) {
		cb(null, true);
	} else {
		cb(null, false);
	}
}

module.exports = multer({
	storage, fileFilter
})


server:
const fileMiddleware = require('./middlewares/file.js');
app.use(fileMiddleware.single('img'));


route:
router.post('/:id/user-img', async(req, res) => {
	try {
		const userFind = await User.findById(req.params.id);
		const toChange = {
			firstName: userFind.firstName
		}

		if (req.file) {
			toChange.img = req.file.path;
		}

		Object.assign(userFind, toChange);
		await userFind.save();
		res.redirect('/profile/'+userFind._id);
	} catch (e) {
		console.log(e.message);
	}
})


html (pug):
form.profile__change-photo.block-hidden(
                            action="/profile/"+ user._id +"/user-img" 
                            method="POST" enctype="multipart/form-data"
                        )
                            input(type="file" name="img" required)
                            input(type="submit" value="Load")
  • Вопрос задан
  • 308 просмотров
Решения вопроса 1
ErvinKhamoido
@ErvinKhamoido
Full-stack developer
Вставь дату в другом формате или просто случайное число вместо даты.
Потому что в том формате, в котором ты вставляешь дату в название файла, дата содержит двоеточие.

На Винде в названии файла не допускается двоеточие, в этом и была проблема.

Сам мучался несколько часов, потом догадался наконец))
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы
19 апр. 2024, в 05:01
999999 руб./за проект
19 апр. 2024, в 03:52
1000 руб./за проект
19 апр. 2024, в 03:01
1000 руб./за проект