背景
后台接口提供了前端上传图片的接口,现在node js需要使用统一的服务接口。
存在的问题:
- node js端的图片已被转为base64
- 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()
})
}