• 【Express】文件上传管理 multer 中间件


    Multer是Node.js中用于处理文件上传的中间件。它可以帮助你处理文件上传的相关逻辑,如接收和保存上传的文件、限制文件大小、设置文件类型限制等。只能用于处理 multipart/form-data 类型的表单数据,它主要用于上传文件。

    下面是使用Multer中间件的基本步骤:

    1. 安装multer:在命令行中运行npm install multer来安装multer模块。

    2. 导入multer模块和创建multer实例:在你的Node.js应用程序中,使用require语句导入multer模块,并创建一个multer实例。

    const multer = require('multer');
    const upload = multer({ dest: 'uploads/' });
    
    • 1
    • 2

    上述代码中,我们使用multerdest属性指定上传文件的保存目录。

    1. 创建路由处理程序:在你的路由处理程序中,使用upload中间件来处理文件上传请求。
    app.post('/upload', upload.single('file'), (req, res) => {
      // 文件上传成功后的操作
    });
    
    • 1
    • 2
    • 3

    上述代码中,我们使用upload中间件的single方法指定只处理单个文件上传请求。'file'参数是表单中文件输入字段的name属性值。

    1. 处理上传成功的文件:在文件上传成功后的处理程序中,可以通过req.file对象获取上传的文件信息。

    Multer 会添加一个 body 对象 以及 filefiles 对象 到 express 的 request 对象中。 body 对象包含表单的文本域信息,filefiles 对象包含对象表单上传的文件信息。

    app.post('/upload', upload.single('file'), (req, res) => {
      if (req.file) {
        // 文件上传成功
        console.log('File uploaded:', req.file);
      } else {
        // 没有文件上传
        console.log('No file uploaded');
      }
    });
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9

    上述代码中,req.file对象将包含上传文件的详细信息,如文件名、文件大小、文件路径等。

    Multer还提供了其他一些常用方法和选项,例如array方法可以处理多个文件上传请求,fields方法可以处理不同字段名的文件上传请求,limits选项可以设置文件大小限制等。

    // 前端
    const params = new FormData()
    params.append('avatar', avatar.files[0])
    params.append('username', username.value)
    const config = {
    	headers: {
    		"Content-Type":"multipart/form-data"
    	}
    }
    http.post('/api/upload', params, config).then(res => {
    	this.imgpath = 'http://localhost:3000' + res.data
    })	
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
  • 相关阅读:
    mongodb通过mongoexport命令导出数据
    java-php-net-python-工会管理系统计算机毕业设计程序
    word 替换全部字母和数字为新罗马
    Python OpenCV剪裁图片并修改对应的Labelme标注文件
    cocosCreator 之localStorage本地存储和封装拓展
    SpringBoot启动代码和自动装配源码分析
    转录组学习第三弹-下载SRR数据并转成fastq
    【Data Mining】Introduction
    简述股票程序化交易的关键点是什么?
    BSN-DDC基础网络的DID功能设计
  • 原文地址:https://blog.csdn.net/XiugongHao/article/details/133861853