微信支付开发票上传电子发票文件

文件摘要获取(node)

/* eslint-disable new-cap */
/* eslint-disable camelcase */
const { router, uploadFilterExcelCsv, uploadFile } = require('../../util')
const { fapiao } = require('../../controllers/admin/pay/post')

router
  .post('/fapiao', uploadFile({ name: 'file', filter: uploadFilterExcelCsv }), fapiao)
module.exports = router

../../util

  /**
   * 上传单个文件的处理函数
   * @param {object} { filedName: 上传文件请求的字段名, fileFilter: 文件过滤函数 }
   * @returns {function} (req, res, next) => {}
   * @memberof Util
   */
  uploadFile({ name, filter, path }) {
    return multer({
      storage: this.fileStorage(path),
      fileFilter: filter,
      limits: { fileSize: 1024 * 1024 * 10 }
    }).single(name)
  }
  /**
   * 上传文件时的文件过滤器, 只接受 excel 以及 csv 文件
   * @param {Express.Request} req
   * @param {File} file
   * @param {function} cb
   * @returns
   * @memberof Service
   */
  uploadFilterExcelCsv(req, file, cb) {
    const { originalname } = file
    if(!originalname.match(/\.(xls|xlsx|xlsm|xltx|xltm|xlsb|xlam|csv|pdf)$/)) {
      return cb(new Error(req.i18n('only accept excel or csv file')), false)
    }
    return cb(null, true)
  }
../../controllers/admin/pay/post
/* eslint-disable new-cap */
/* eslint-disable camelcase */
const fs = require('fs')
const {sm3} = require('miniprogram-sm-crypto')

class Post {
  constructor() {
    at(this)
  }

  async fapiao(req, res, next) {
    try {
      fs.readFile(req.file.path, (err, data) => {
        console.log(sm3(data.toJSON().data));
      })
      res.json()
    } catch (error) {
      return next(error)
    }
  }

}

module.exports = new Post()
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值