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
  • 相关阅读:
    Python matplotlib基本设置
    Python可视化工具
    使用Python进行数据分析——常见实用的第三方库
    Python第三方库安装
    Python pip的安装
    Python cx_Oracle数据库连接
    Python安装使用(WinXP)
    大数据学习路线(转载)
    SQL 数据库学习之路-转自大神笔记
    Java字符串处理函数汇总
  • 原文地址:https://www.cnblogs.com/cool-fire/p/7263890.html
Copyright © 2011-2022 走看看