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示例




Node.js中,Multer是一个中间件,用于处理HTTP请求中的文件上传。它基于busboy构建,可以方便地处理表单数据中的文件上传。 要使用Multer,首先需要安装它。可以通过以下命令使用npm进行安装: ``` npm install multer ``` 安装完成后,可以在代码中引入Multer并配置它。以下是一个简单的示例: ```javascript const express = require('express'); const multer = require('multer'); const app = express(); // 配置Multer const storage = multer.diskStorage({ destination: function (req, file, cb) { cb(null, 'uploads/'); // 指定文件保存的目录 }, filename: function (req, file, cb) { cb(null, file.originalname); // 指定保存的文件名 } }); const upload = multer({ storage: storage }); // 处理文件上传的路由 app.post('/upload', upload.single('file'), function (req, res, next) { // req.file 包含上传的文件信息 res.send('文件上传成功'); }); app.listen(3000, function () { console.log('服务器已启动'); }); ``` 在上面的示例中,首先引入了expressmulter模块。然后创建了一个express应用,并配置了Multer。通过`diskStorage`方法可以指定文件保存的目录和文件名。在示例中,文件将保存在`uploads/`目录下,并使用原始文件名作为保存的文件名。 接下来,通过`multer()`方法创建了一个Multer实例,并将其作为中间件应用到路由上。在示例中,使用了`upload.single('file')`来处理单个文件上传,其中`'file'`是表单中文件字段的名称。 最后,定义了一个处理文件上传的路由`/upload`,在这个路由中可以通过`req.file`获取上传的文件信息。 以上就是使用Multer处理文件上传的基本步骤和示例
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值