【发布时间】:2018-12-05 09:15:44
【问题描述】:
我正在尝试使用 axio 将多个图像上传到服务器,并将多个参数作为请求正文。基本上下面是本机android中的请求,它试图在本机反应中做到这一点。
@Headers(HTTPService.NEEDS_AUTH_HEADER)
@Multipart
@POST("/api/post")
Call<Post> create(
@Part("title") RequestBody title,
@Part("content") RequestBody content,
@Part("location") RequestBody location,
@Part("category") RequestBody category,
@Part("captions") List<RequestBody> captions,
@Part List<MultipartBody.Part> parts
);
这就是我试图在反应中做的事情:
const config = {
method: 'post',
headers: {
'NEEDS_AUTH': true,
Accept: 'application/json',
'Content-type': undefined
},
formDataArray,
url: PATH_API_CREATE_POST,
data: {
title: postTitle,
content: postContent,
location: locationId,
category: categoryId,
}
}
axios(config).then(res => console.log('create post ', res)).catch(err => console.log('create post err', err.response))
这里是 formDataArray :
photos.forEach(element => {
let formdata = new FormData();
formdata.append("upload", { uri: element, name: 'image.jpg', type: 'image/jpg' })
formDataArray.push(formdata)
});
很遗憾,没有图像上传到服务器。
【问题讨论】:
-
将你的 axios 配置
'Content-type': undefined更改为'Content-Type': 'multipart/form-data'。 -
现在显示
"content-type missing boundary -
这就是我传入 undefined 的原因
-
你是如何填充
formDataArray的?让我看看。 -
photos.forEach(element => { formdata.append("parts[]", { uri: element, name: 'image.jpg', type: 'image/jpg' }) }); formdata.append('title', postTitle); formdata.append('content', postContent); formdata.append('location', locationId); formdata.append('category', categoryId);然后用formdata做axios post,不再是formDataArray。
标签: reactjs react-native axios image-upload