繁体   English   中英

尝试上传图像时 Multer 出错

[英]Error In Multer When Trying To Upload A Image

目前是 multer 的新手,所以这是我的问题:当我尝试将 jpg 图像发布到 mysql 时,我一直收到MulterError: Unexpected field作为输出。 谁能看到我的代码中的错误是什么? 目前我试图在上传超过 1MB 的图像时发出错误消息。

var multer = require('multer');
var path = require('path');
var storage = multer.diskStorage({
    destination: function (req, file, callback) {
        callback(null, './uploads');
    },
    filename: function (req, file, callback) {
        callback(null, file.fieldname + '-' + new Date().toISOString() + '-' + path.extname(file.originalname));
    }
});
var upload = multer({storage: storage});

// Endpoint 13 (EXTRA FEATURE 1)
const fileFilter = (req, file, callback) => {
    if(file.mimetype === 'image/jpg') {
        callback(null,true);
    }
    callback(null,false);
}

var uploadFromDesktop = multer({
    storage:storage,
    limits: {
        fieldSize: 1024 * 1024
    },
    fileFilter: fileFilter
});

app.post("/upload/", upload.single('productImage'), (req, res, next) => {
    uploadFromDesktop(req,res),(error) => {
        console.log(error);
        if (error) {
            if (error.code === 'LIMIT_FILE_SIZE') {
            } else {
                res.status(500).send({ 'status': status, 'error':error})
                }
            } else {
                var temp = req.file.path;
                var file = uploadDir + req.file.originalname;
                var source = fs.createReadStream(temp);
                var destination = fs.createWriteStream(file);
                source.pipe(destination);
                fs.unlink(temp);
                source.on('end',function () {
                    var result = {
                        'status': 'success',
                        'file': file
                    }
                    fs.chmod(file,0777);
                    res.send(result);
                })
                source.on('error', function (error) {
                    var result = {
                        'status': 'Fail',
                        'error': error
                    };
                    res.send(result);
                })
            }
        }
    })

尝试使用文件大小:

限制:{文件大小:2 * 1024 * 1024 // 2 MB}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM