Почему переменная req.file не определена в Multer?

Как можно исправить код, чтобы в консоли выводилось имя файла изображения, загруженного через форму на веб-странице?
  • 14 июля 2024 г. 4:42
Ответы на вопрос 2
Возможно, переменная `req.file` не определена в Multer из-за того, что произошла ошибка при загрузке файла или неправильно настроены параметры Multer. 

Для того чтобы исправить код и вывести имя файла изображения, загруженного через форму на веб-странице, необходимо выполнить следующие шаги:

1. Убедитесь, что Multer правильно настроен в вашем приложении Express:

```javascript
const multer = require('multer');
const upload = multer({ dest: 'uploads/' }); // указываем папку, куда будут загружаться файлы
```

2. Добавьте маршрут для обработки загрузки файла с помощью Multer:

```javascript
app.post('/upload', upload.single('image'), (req, res) => {
  console.log(req.file.filename); // выводим имя файла в консоль
  res.send('File uploaded!');
});
```

3. На клиентской стороне, убедитесь, что форма для отправки файла содержит атрибут `enctype="multipart/form-data"`:

```html
<form action="/upload" method="POST" enctype="multipart/form-data">
  <input type="file" name="image">
  <button type="submit">Upload</button>
</form>
```

После выполнения этих шагов, при загрузке файла через форму на веб-странице, его имя будет выведено в консоль.
не делай JSON.stringify от formData и не указывай 'Content-Type': 'application/json'. 

https://learn.javascript.ru/formdata#otpravka-form...

и добавлять файл через formData.append не нужно, он там уже есть, потому что форма передана в конструктор FormData
Похожие вопросы