【问题标题】:Image filename not getting inserted in db using Multer使用 Multer 未将图像文件名插入数据库
【发布时间】:2015-12-17 05:45:44
【问题描述】:

我尝试使用教程中指定的 multer。然后意识到它现在不像以前那样工作了。所以我查看了 multer 的 github 页面并按照文档进行操作。但是,我的图片虽然上传了,但文件名并没有存储在数据库中。

这是我的代码:

var express = require('express');
var router = express.Router();
var multer = require('multer');
var upload = multer({dest: './public/images/uploads/'});

router.post('/add', upload.single('mainimage'), function(req, res, next) {
    //get form values
    var title = req.body.title;
    var category = req.body.category;
    var body = req.body.body;
    var author = req.body.author;
    var date = new Date();
    var mainImageName;



    if(req.files && req.files.mainimage){

        var mainImageNameOriginalName = req.files.mainimage.originalname;
        mainImageName = req.files.mainimage.name;
        var mainImageMime = req.files.mainimage.mimetype;
        var mainImagePath = req.files.mainimage.path;
        var mainImageExtension = req.files.mainimage.extension;
        var mainImageSize = req.files.mainimage.size;

    }else{
      mainImageName = 'noimage.png';
    }

    // db insertion and yadi yadi yada

});

module.exports = router;

虽然图像正在上传,但被存储的图像文件名是noimage.png。我在顶部定义了mainImageName 以避免提升

【问题讨论】:

    标签: node.js express multer


    【解决方案1】:

    1) 在req.file中查找单个文件

    2) 确保您的 html 表单具有属性 enctype="multipart/form-data"

    【讨论】:

    • 如果表单没有该属性,那么我认为图像不会被上传。我检查了req.file。同样的问题
    猜你喜欢
    • 1970-01-01
    • 2013-03-07
    • 1970-01-01
    • 2021-06-17
    • 1970-01-01
    • 2017-07-13
    • 1970-01-01
    • 2017-05-09
    • 1970-01-01
    相关资源
    最近更新 更多