背景
后臺(tái)接口提供了前端上傳圖片的接口,現(xiàn)在node js需要使用統(tǒng)一的服務(wù)接口。
存在的問題:
- node js端的圖片已被轉(zhuǎn)為base64
- node js不支持formdata
在網(wǎng)上谷歌了找了很久并沒有找到正確的方式,應(yīng)該是我們的場景太過特殊,在踩了幾個(gè)坑之后,最終成功請(qǐng)求。
成功的代碼
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()
})
}