nodejs中处理图片上传

nodejs中处理文件上传可以使用 multer 中间件

该中间件可以处理图片或者文件
以下是该中间件处理图片的方式

用法
  • 安装
$ npm install --save multer
  • 使用
const multer = require('multer')        //导入multer中间件
const upload = multer({ dest: 'image/' })  
//一个用来处理文件数据的对象,有多种方法
//dest用来定义一下文件存储路径;可以是相对路径,如当前格式,就会在代码运行文件所在文件夹下生成一个image文件夹
//也可以是绝对路径如 C://xxx 也可以生成对应的文件夹,
//注意权限问题

// upload.single('image'),接收单个文件数据,不能用于处理多文件上传
// ('image') 中用于填写接收文件的 name 属性值,不一致则不接收
router.post('/photos/upload', upload.single('image'), function (req, res, next) {
  // req.file是读取的图片数据,然后要进行处理才能存储
  User.findByAccount(req.body, result => {
    if (result.length) {
      if(result[0].userImg){
        fs.unlink(result[0].userImg,(err)=>{
          if(err){
            console.log(err)
          }
        })
      } //个人处理,可有可无,在新图片存贮之前把旧的图片删除的操作
      const file = req.file  //这是前端上传的,multer处理过的图片数据
      const extname = path.extname(file.originalname) //文件后缀名
      const filepath = file.path  //文件存储路径
      const filename = filepath + extname  //处理之后的文件名,可以用来存储或者读取
      fs.renameSync(filepath, filename) // 将目前存储的文件名重命名
      result[0].userImg = filename
      User.change(req.body, result[0], doc => {
        if (doc.ok === 1) {
          res.send('success')
        } else {
          res.send('error')
        }
      }) //存入mongodb库
    }
  })
  //处理完成,下面开始读取图片并转换成base64格式在下个接口中读取发送给前端(传输时候遇到权限问题,不能通过路径直接访问本地文件,所以做了处理,个人操作)
})
  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值