Express+vue+element-ui上传图片带参数给后台formData格式

Express+vue+element-ui上传图片时遇到的问题:最重要的问题
node+express用multer上传图片
当后台接口 upload.single(‘file’) 写的是file时。
在这里插入图片描述
我们可以直接在action 中写入 接口连接
在这里插入图片描述
当后台接口 upload.single(‘file’) 写的不是file时。
如:此时在action 中写时 无法上传图片。
在这里插入图片描述
这时需要我们使用 http-request (覆盖默认的上传行为,可以自定义上传的实现)。
带参数给后台formData格式数据,实现上传。
在这里插入图片描述
Express+vue+element-ui上传图片带参数给后台formData格式_第1张图片
切记 传过去FormData 中的名字要和后台Express中的一样如下:
Express+vue+element-ui上传图片带参数给后台formData格式_第2张图片在这里插入图片描述
Express 接口代码

//图片上传  用日期命名图片存储的文件夹
//获取时间

function getNowFormatDate() {
    var date = new Date();
    var seperator1 = "-";
    var month = date.getMonth() + 1;
    var strDate = date.getDate();
    if (month >= 1 && month <= 9) {
        month = "0" + month;
    }
    if (strDate >= 0 && strDate <= 9) {
        strDate = "0" + strDate;
    }
    var currentdate = date.getFullYear() + seperator1 + month + seperator1 + strDate;
    return currentdate.toString();
}

var datatime = 'public/images/' + getNowFormatDate();
//将图片放到服务器
var storage = multer.diskStorage(
	//destination  完整形态
    // destination: function (req, file, cb) {
    //     cb(null, '/tmp/my-uploads')
    // },
    // destination 是一个函数,负责创建文件夹
    destination: datatime,
    //filename 给上传文件重命名
    filename: function (req, file, cb) {
        cb(null, file.originalname);
    }
});
var upload = multer({
    storage: storage
});
router.post('/uploads', upload.single('file'), function (req, res, next) {
    res.send("上传成功")
});

vue + element ui 上传图片代码






github:
vue:
https://github.com/Usered/demo/blob/master/Vue/FirstVue/src/main/daohang2.vue
Express
https://github.com/Usered/demo/blob/master/Express/mydemo/routes/index.js

你可能感兴趣的:(经验)