req.file не определен, когда я загружаю изображение, используя multer и html форму ввода - PullRequest
0 голосов
/ 07 апреля 2020

Я хотел загрузить изображения, используя nodeJS и multer, поэтому я сделал следующее:

Ниже приведена конфигурация моего мультитера:

var multer = require('multer');

var storage = multer.diskStorage({

    //Setting up destination and filename for uploads
    destination: function (req, file, cb) {  
        cb(null, 'uploads/');
    },
    filename: function (req, file, cb) {  
        cb(null, Date.now() + file.originalname);
    }

});

var upload = multer({
    storage: storage,
    limits:{
        fieldSize: 1024HTML6,
    }
});

Ниже представлен мой маршрут для загрузки изображения:

router.post('/designer', upload.single('designerImage'), async (req, res) => {
    console.log(req.file);

    //rest of the code which is not needed for my query
})

Он прекрасно работает, когда я POST файл, используя form-data ключ типа file , используя POSTMAN . Но когда я пытаюсь отправить его с помощью формы ввода *1024*, req.file получается undefined и файл не загружается в папку uploads . Ниже приведен мой HTML код формы:

<form action="/designer" method="POST">
    <input type="file" name="designerImage">
<form>

Каково решение этой проблемы? Я провел часы, но не смог найти решение.

1 Ответ

2 голосов
/ 07 апреля 2020

multer только анализирует multipart/form-data запросов, поэтому вам нужно добавить enctype="multipart/form-data" в вашу форму

<form action="/designer" method="POST" enctype="multipart/form-data">
    <input type="file" name="designerImage">
<form>
...