【问题标题】:Image upload isn't working using multer图片上传无法使用 multer
【发布时间】:2018-10-23 14:05:12
【问题描述】:

我这样设置multer

let multer = require('multer');

let apiRoutes = express.Router();
let UPLOAD_PATH = '../uploads';

let storage = multer.diskStorage({
    destination: (req, file, cb) => {
        cb(null, UPLOAD_PATH);
    },
    filename: (req, file, cb) => {
        cb(null, file.fieldname + '-' + Date.now());
    }
});

let upload = multer({ storage: storage });

在路线中,我正在获取数据和图像并使用 multer 之类的!

   apiRoutes.post('/update', passport.authenticate('jwt', { session: false }), (request, response) => {

    let record = {
        name: request.body.name,
        location: request.body.location,
        about: request.body.about,
        userid: request.body.userid,
        avatar: request.body.filename
    };

    let userData = {
        name: request.body.name
    };

    if (request.body.filename) {
        upload(request, response, (error) => {
        });
    }

    profile.findOneAndUpdate({ userid: request.body.userid }, record, {new: true}, (error, doc) => {
        if (error) response.json(error);

        user.findOneAndUpdate({ _id: request.body.userid }, record, (error, result) => {
            if (error) throw error;

            response.json(doc);
        });
    });
});

这段代码发生的情况是,当我不将图像发送到后端时,我会从前端获取数据并将其存储到数据库中。但是,当我将图像与侧面数据一起发送时,它会返回POST /api/1.0/profile/update 401 0.396 ms - -

这意味着我根本没有得到任何数据。这里的代码有什么问题?

【问题讨论】:

    标签: javascript node.js express ionic-framework multer


    【解决方案1】:

    您不能在 /update 路由中使用 Multer。像这样在路由器中使用 Multer:

    var upload = multer({ dest: 'uploads/' })
    apiRoutes.post('/profile', upload.single('image'), function (req, res, next) {
      // Uploaaded
    
    })
    

    如果你添加它但仍然无法获取我们的文件,你应该使用这个参数更新你的表单:enctype="multipart/form-data"

    【讨论】:

    • 那我应该在哪里添加passport.authenticate('jwt', { session: false })
    • 在回调函数中调用。
    • 它确实在没有 JWT 身份验证的情况下上传,但我需要它通过身份验证来确保安全。在回调中调用它让图像上传,我是否在回调中使用它都没有关系。
    猜你喜欢
    • 2017-03-03
    • 2021-05-30
    • 1970-01-01
    • 1970-01-01
    • 2018-09-17
    • 2016-06-14
    • 1970-01-01
    • 2018-11-23
    • 1970-01-01
    相关资源
    最近更新 更多