Ashutosh
Ashutosh

Reputation: 3

nodejs how to upload image from API

I am new to node JS and i have made function for uploading image from API. But when i hit the URL from postman using form-data having field name image then in response it shows me. Here is the postman image

Error uploading file

below is my code

My router.js contain:-

var express = require('express');

var router = express.Router();

var ctrlSteuern = require('../controllers/steuern.controllers.js');

router

 .route('/steuern/image_upload')
 .post(ctrlSteuern.imageUpload);

in Controller i have:-

var multer = require('multer'); 

var multiparty = require('multiparty');

var storage =   multer.diskStorage({

destination: function (req, file, callback) {

callback(null, './image');

},

filename: function (req, file, callback) {

callback(null, file.fieldname + '-' + Date.now());

}

});

var upload = multer({ storage : storage}).single('image');

module.exports.imageUpload = function(req, res){

upload(req,res,function(err) {

if(err) {

return res.end("Error uploading file.");

}

return res.end("File is uploaded");

});

}

Upvotes: 0

Views: 10079

Answers (1)

sohamdodia
sohamdodia

Reputation: 377

Here is my code for saving image to folder.

exports.saveMedia = (req, res) => {
        const storage = multer.diskStorage({
            destination: (req, file, callback) => {
                callback(null, (config.const.path.base + config.const.path.productReviewMedia));
            },
            filename: (req, file, callback) => {
                callback(null, Date.now() + '-' + file.originalname);
            }
        });

        const upload = multer({storage: storage}).any('file');

        upload(req, res, (err) => {
            if (err) {
                return res.status(400).send({
                    message: helper.getErrorMessage(err)
                });
            }
            let results = req.files.map((file) => {
                return {
                    mediaName: file.filename,
                    origMediaName: file.originalname,
                    mediaSource: 'http://' + req.headers.host + config.const.path.productReviewMedia + file.filename
                }
            });
            res.status(200).json(results);
        });
}

enter image description here

Here is post man request.

Upvotes: 3

Related Questions