multer使用示例

Multer 是一个 node.js 中间件,用于处理 multipart/form-data 类型的表单数据,它主要用于上传文件。它是写在 busboy 之上非常高效。


使用示例

后端

  • 在router里面做如下配置

const multer = require('multer');
const result = require('../util/result');

let storage = multer.diskStorage({
    //设置上传后文件路径,uploads文件夹会自动创建。
    destination: function (req, file, cb) {
        cb(null, './uploads')
    },
    //给上传文件重命名,获取添加后缀名
    filename: function (req, file, cb) {
        let fileFormat = (file.originalname).split(".");
        let filename = file.fieldname + '-' + Date.now() + "." + fileFormat[fileFormat.length - 1]
        cb(null, filename);
    }
});
let upload = multer({
    storage: storage
});
在对应路由controller做如下使用:
//提交数据
//这个地方的upload.single('XXXX'),XXX是对应的前端input框,上传文件的name
router.post('/', upload.single('avatar'), (req, res) => {
    console.log(req.file);

    //如果文件上传成功,获取文件的名字存入数据库
    if (req.file) {
        let file=req.file;
        let fileFormat = (file.originalname).split(".");
        let filename = file.fieldname + '-' + Date.now() + "." + fileFormat[fileFormat.length - 1];
        console.log(filename);

        res.status(200).json(result(0,'上传文件成功'),{
            filename:filename
        })
    }
});

前端:
<form method="post" enctype="multipart/form-data">
    <input type="file" name="avatar" value="选择你上传的文件">
    <input type="submit">
</form>


git示例




  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值