zoukankan      html  css  js  c++  java
  • Express文件上传

       最近写一个接口,接收传过来的文件,折腾一番,终于完成了,记录一下.

      要装一个库:multiparty

      下面是部分代码片段,如何创建express的省略:
    var multiparty = require('multiparty');
    var crypto = require('crypto');
    
    router.post('/pack/apk', function (req, res) {
    
      
      var apkDir = '/var/apk/'
      var name = 'params'
    
    
      //生成multiparty对象,并配置上传目标路径
      var form = new multiparty.Form({ uploadDir: apkDir });
    
      new Promise(function (resolve, reject) {
        //上传完成后处理
        form.parse(req, function (err, fields, files) {
    
          name = 'name' in fields ? fields.name[0] : name
    
          var filesTmp = JSON.stringify(files, null, 2);
          if (err) {
            reject(err)
          } else {
            var inputFile = files.file[0]
            // 真实的文件名
            var fileName = inputFile.originalFilename
            // 临时文件全路径
            resolve({ temFilePath: inputFile.path, fileName: fileName })
          }
        })
      }).then(function (file) {
        // 做个md5
        return new Promise(function (resolve, reject) {
          var rs = fs.createReadStream(file.temFilePath)
          var hash = crypto.createHash('md5')
          rs.on('data', hash.update.bind(hash))
          rs.on('end', function () {
            file.md5 = hash.digest('hex')
            resolve(file)
          })
        })
      })

     然后,在客户端调用就可以这样:

     curl -F file=@test.apk -F name=kkk http://www.test.com/test
  • 相关阅读:
    [][]
    Spark笔记04
    Spark笔记03
    Spark笔记02
    Spark笔记01
    【熟能生巧】使用Screw快速生成数据库文档
    记一次关于jdbcTemplate.queryForList快速Debug及感悟
    【从零单排】Exception实战总结1
    【从零单排】Java性能排查实战模拟
    【从零单排】关于泛型Generic的一些思考
  • 原文地址:https://www.cnblogs.com/cool-fire/p/7263890.html
Copyright © 2011-2022 走看看