multer基本用法

本文介绍了一个高效的Node.js中间件Multer,它专门用于处理multipart/form-data类型的表单数据,主要应用于文件上传。文章详细讲解了如何安装Multer,并通过实例演示了如何配置Multer进行文件的保存及读取。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

网址https://github.com/expressjs/multer

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

注意: Multer 不会处理任何非 multipart/form-data 类型的表单数据。

步骤:

1.node.js的dos命令里输入 

$ npm install --save multer

2.在js文件中引入

var express= require('express');

var multer  = require('multer');
var upload = multer({dest:"/upload"});

*Multer 接受一个 options 对象,其中最基本的是 dest 属性,这将告诉 Multer 将上传文件保存在哪。如果你省略 options 对象,这些文件将保存在内存中,永远不会写入磁盘

3.post传送数据

app.post('/profile', upload.single('avatar'), function (req, res, next) {
  // req.file 是 `avatar` 文件的信息
  // req.body 将具有文本域数据,如果存在的话
})

app.post('/photos/upload', upload.array('photos', 12), function (req, res, next) {
  // req.files 是 `photos` 文件数组的信息
  // req.body 将具有文本域数据,如果存在的话
})

var cpUpload = upload.fields([{ name: 'avatar', maxCount: 1 }, { name: 'gallery', maxCount: 8 }])
app.post('/cool-profile', cpUpload, function (req, res, next) {
  // req.files 是一个对象 (String -> Array) 键是文件名,值是文件数组
  //
  // 例如:
  //  req.files['avatar'][0] -> File
  //  req.files['gallery'] -> Array
  //
  // req.body 将具有文本域数据,如果存在的话
})

4.前台页面js:

$("#fbtn").change(function () {
    //获取file对象
    //formdata上传----js版ajax
    //1.创建
    var ajax = new XMLHttpRequest();
    ajax.open("POST","/admin/upload/main")
    //发送send
    var formdata = new FormData();//$("#form")[0]---js-->jq
    formdata.append("photo",this.files[0])
    ajax.send(formdata);
    //响应成功
    ajax.onreadystatechange = function () {


    if (ajax.readyState == 4) {  
    /*
字符串==>对象:JSON.parse();
对象==>字符串:JSON.stringify();
    */
    var data =JSON.parse(ajax.responseText);
    if (data.status) {
    var $img = $('<img src="'+data.mdImg+'" style="width:200px;height:200px">')
    $(".pic_box").html($img)
    $("#lgImg").val(data.lgImg)
    $("#mdImg").val(data.mdImg)
    }else{
    alert(data.msg)
    }    
    }
    }


    })



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值