使用multer写一个上传图片

这篇博客介绍了如何在Node.js中使用Multer中间件进行文件上传。首先,通过npm安装multer,并在upload.js文件中配置上传路径和文件命名规则。接着,定义上传路由并设置 Multer 的single()方法处理单个文件上传。前端使用Ajax发送POST请求,将文件添加到formData中,上传成功后返回文件的服务器路径,用于预览。

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

multer(node中间件)

下载:链接(https://www.npmjs.com/package/multer
npm i multer
创建一个upload.js文件,内容为下:

const multer  = require('multer')
// 自定义上传目录 文件名
const storage = multer.diskStorage({
  destination: function (req, file, cb) {
    cb(null, './public/uploads')   //  上传的文件目录(文件上传以后放在哪里)
  },
  filename: function (req, file, cb) {
    cb(null, file.fieldname + '-' + Date.now()+path.extname(file.originalname))  //  上传的文件名字 (文件名+‘-’+时间戳+源文件的后缀名【例如:jpg/png......】)
  }
})

const upload = multer({ storage: storage })
//  导出:
module.exports = upload   导出使用

文件上传路由:
定义一个上传路由/upload

router.post('/upload',upload.single('file'), (req, res) => {   //  'file'和标签的name属性值一样!
  res.send({
    code: 0,
    msg:'上传成功',
    data: '/static/uploads/'+req.file.filename // 上传成功的服务器的地址 (上文中文件所在地址)
  })
})

前端ajax请求上传文件:

// 将上传的文件存入formData中
formData.append('file', $('#file')[0].files[0]);
$.ajax({
          url: '/upload',
          type: 'post',
          processData: false, //必须 缓存关了
          contentType: false, //必须 关闭 设置 数据格式(以 数据本身格式为准 xxxxx urlencoded)
          data: formData,
          success: function(res){
          console.log(res);
          if(res.code === 0) {
              alert(res.msg);
              $('#img').attr('src', res.data)  //  将后端返回的【上传成功的服务器的地址 (上文中文件所在地址)】设置给img的src属性,这样上传的时候有一个预览的效果
            }
          }
        })
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值