nodejs上传文件, 单个文件, 多个文件上传

前端代码

<form action="http://192.168.1.81:3001/upload" enctype="multipart/form-data"  method="post">
  <input type="file" name="file" >
  <input type="file" name="file" >
  <input type="file" name="headImg" >
  <input type="file" name="headImg" multiple="multiple">
  <input type="submit" value="提交">
</form>

express代码

var multiparty = require('multiparty');
var path = require('path');

router.post('/upload', (req, res) => {
  console.log('upload-req.headers---', req.headers)
  try {
    var form = new multiparty.Form({
      encoding: 'utf8',
      // 用户上传文件的临时目录
      uploadDir: path.join(__dirname, '../public/temp/')
    });
  
    form.parse(req, function(err, fields, files) {
      // 手动存储图片的路径
      let flod = path.join(__dirname, '../public/upload-img/')
      // 上传的第一个图片的名字
      let fileName = files.file[0].originalFilename
      // 先将图片从里临时目录中读取, 然后存到存储图片的文件夹
      fs.writeFile(flod + fileName, fs.readFileSync(files.file[0].path), (err, result) => {
        if (err) {
          console.error('接受图片错误', err)
          return
        }
      })
    });
    res.redirect('http://192.168.1.81:3001/test')
  } catch (error) {
    res.end('err')
  }
})

form.parse里的files对象

let obj = { 
  file: [ 
    { fieldName: 'file',
      originalFilename: 'WechatIMG148.jpeg',
      path: '/Users/mee/code/node/uploadfile/public/temp/Xv1zVJ9vL12JRvavo61UJWHe.jpeg',
      headers: [Object],
      size: 69760 
    },
    { fieldName: 'file',
      originalFilename: 'WechatIMG149.jpeg',
      path: '/Users/mee/code/node/uploadfile/public/temp/HrPO8gnJL5YAed0ZKuQpirJ5.jpeg',
      headers: [Object],
      size: 71986 
    } 
  ],
  headImg: [ 
    { fieldName: 'headImg',
      originalFilename: 'sky.jpeg',
      path: '/Users/mee/code/node/uploadfile/public/temp/ZipFJERFf0H5z0Tbt-Kzdi4b.jpeg',
      headers: [Object],
      size: 151759 
    },
    { fieldName: 'headImg',
      originalFilename: 'star.png',
      path: '/Users/mee/code/node/uploadfile/public/temp/BjCV1NX7jnlAPtGHJ1bZb8W7.png',
      headers: [Object],
      size: 749672 
    },
    { fieldName: 'headImg',
      originalFilename: 'pic.png',
      path: '/Users/mee/code/node/uploadfile/public/temp/-H8rJBkRrm7eUNuwSSDd3I9n.png',
      headers: [Object],
      size: 749672 
    }
  ] 
}

// headers: [Object]的内容
headers = { 
  'content-disposition': 'form-data; name="headImg"; filename="108.png"',
  'content-type': 'image/png' 
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值