请问一次性上传多张图片,在上传多张图片,想问下:
1、多张图片如何传值?
2、请求参数和图片流怎么传值?
因此想知道一次性上传多张图片的解决方案
如下demo报错:Buffer is not defined code==ERR\_BAD\_OPTION\_VALUE
//上传文件
uploadFile(buffer:ArrayBuffer,uploadUrl: string, fileName: string, fileContentType: string,
paramsMap: Map<string, string>): Promise<http.HttpResponse> {
return new Promise<http.HttpResponse>(async (resolver, reject) => {
try {
let param:param = {
aid: paramsMap.get('aid') as string,
sid: paramsMap.get('sid')as string,
token: paramsMap.get('token')as string,
ext: JSON.parse(paramsMap.get('ext')as string) as object,
ts: paramsMap.get('ts')as string,
sign: paramsMap.get('sign')as string,
image_files: [buffer,buffer],
sceneId: '',
fromType:''
}
let fileName = 'certImage'+systemDateTime.getTime().toString()
let formData = new FormData()
formData.append('file',buffer)
formData.append('name','image_files')
formData.append('fileName',fileName)
axios.post<string,AxiosResponse<string>,FormData>(uploadUrl,formData,{
method:'post',
params:param,
data:formData,
headers:{'Content-Type': 'multipart/form-data'},
context:getContext(this),
onUploadProgress:(progress: AxiosProgressEvent): void =>{
console.info('AxiosProgressEvent'+progress)
}
})
.then((res:AxiosResponse)=>{
console.info('Axiosres'+JSON.stringify(res))
}).catch((err:AxiosError)=>{
console.info('error message='+err.message+' code=='+err.code)
})
catch (e) {
reject(e)
}
}
})
}
可以参考以下案例:https://blog.csdn.net/weixin\_41217541/article/details/102696941。
报错Buffer is not defined code==ERR\_BAD\_OPTION\_VALUE是因为代码写错,因为
formData的key取决于服务端,服务端定义的字段是什么就填写什么。使用append()方法时,可以通过第三个可选参数设置多部分表单数据的数据名称和数据类型,设置图片名称。