nodejs如何从API上传图像

时间:2017-07-26 11:33:27

标签: node.js mean-stack

我是节点JS的新手,我已经制作了从API上传图片的功能。 但是当我使用具有字段名称图像的表单数据从邮递员点击URL时,作为响应它显示我。 Here is the postman image

  

上传文件时出错

下面是我的代码

我的router.js包含: -

var express = require('express');

var router = express.Router();

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

路由器

 .route('/steuern/image_upload')
 .post(ctrlSteuern.imageUpload);
控制器中的

我有: -

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");

});

}

1 个答案:

答案 0 :(得分:1)

这是我将图像保存到文件夹的代码。

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

这是发帖人请求。