node js multipart/form-data 提交base64图片

背景

后台接口提供了前端上传图片的接口,现在node js需要使用统一的服务接口。
存在的问题:

  1. node js端的图片已被转为base64
  2. node js不支持formdata
    在网上谷歌了找了很久并没有找到正确的方式,应该是我们的场景太过特殊,在踩了几个坑之后,最终成功请求。

成功的代码

import * as FormData from "form-data"

async upload(){
    const imageData = '完整的图片base64字符串'
    const base64ImgStr = imageData.replace(/^data:image\/[a-z]+;base64,/, '');
    const url = 'https://127.0.0.1:7001/upload'

    let data = new FormData()
    data.append('file', Buffer.from(base64ImgStr, 'base64'),
      {contentType: 'image/png', filename: 'x.png'})
    data.append('bizType', 'bxUser')
    data.append('fileType', 1)

    const result: any = await this.httpService.post(url, data, {
      headers: data.getHeaders()
    })
}

你可能感兴趣的:(node js multipart/form-data 提交base64图片)