使用if语句和req.文件用于单个文件上传

using if statement with req.file for a single file upload

本文关键字:文件 用于 单个 req if 语句 使用      更新时间:2023-09-26

我有一个基本的web应用程序,我希望用户能够注册一张图片上传的形式,但如果他们没有图片上传在当前时间我想自动设置一个默认的图像,已经存储在本地的上传文件夹作为noimage.png被调用并存储为用户的配置文件图像。这是我的尝试,但没有工作;

var multer = require('multer');

//var uploads = multer({dest: './uploads/'});
var storage = multer.diskStorage({
    destination: function (request, file, callback) {
        callback(null, './uploads');
    },
    filename: function (request, file, callback) {
        console.log(file);
        callback(null, file.fieldname)
    }
});
var upload = multer({ storage: storage });
router.post('/register', upload.single('profileimage'), function(req,res,next){
    `if(req.file.profileimage){
            console.log('uploading File...');
            // File Info
            var profileImageOriginalName = req.files.profileimage.originalname;
            var profileImageName = req.files.profileimage.name;
            var profileImageMime = req.files.profileimage.mimetype;
            var profileImagePath = req.files.profileimage.path;
            var profileImageExt = req.files.profileimage.extension;
            var profileImageSize = req.files.profileimage.size;
        } else {
            // Set a Default Image
            var profileImageName = 'noimage.png';
        }

我如何使用multer来处理这个?

当您只有一个文件时,您只使用req.file,而不是req.file.<fieldname>。这意味着只使用req.file.originalnamereq.file.mimetype等访问所有文件信息。