Reactjs 使用axio react native将多个带有部件参数的图像上载到服务器
我正在尝试使用axio将多个图像上传到服务器,并将多个参数作为请求主体。基本上,下面是原生android中的请求,我正试图用react-native实现它Reactjs 使用axio react native将多个带有部件参数的图像上载到服务器,reactjs,react-native,axios,image-upload,Reactjs,React Native,Axios,Image Upload,我正在尝试使用axio将多个图像上传到服务器,并将多个参数作为请求主体。基本上,下面是原生android中的请求,我正试图用react-native实现它 @Headers(HTTPService.NEEDS_AUTH_HEADER) @Multipart @POST("/api/post") Call<Post> create( @Part("title") RequestBody title,
@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
);
这里是formDataArray:
photos.forEach(元素=>{
设formdata=new formdata();
append(“upload”,{uri:element,name:'image.jpg',键入:'image/jpg'})
formDataArray.push(formdata)
});代码>
很遗憾,没有图像上载到服务器 假设您的照片
数组包含上载照片的文件系统路径数组,
您的FormData应该像这样循环:
const data = new FormData()
photos.forEach((element, i) => {
const newFile = {
uri: element, type: 'image/jpg'
}
data.append('files', newFile)
});
然后,您可以将此变量数据
附加到post请求,以将文件数组上载到服务器。假设您的照片
数组包含上载照片的文件系统路径数组,
const data = new FormData()
photos.forEach((element, i) => {
const newFile = {
uri: element, type: 'image/jpg'
}
data.append('files[]', newFile)
});
您的FormData应该像这样循环:
const data = new FormData()
photos.forEach((element, i) => {
const newFile = {
uri: element, type: 'image/jpg'
}
data.append('files', newFile)
});
然后,您可以将此变量data
附加到post请求,以将文件数组上载到服务器
const data = new FormData()
photos.forEach((element, i) => {
const newFile = {
uri: element, type: 'image/jpg'
}
data.append('files[]', newFile)
});
医生说
文档说将您的axios配置更改为“内容类型”:未定义的
更改为“内容类型”:“多部分/表单数据”。现在它说的是“内容类型缺少边界”
这就是我输入未定义的原因。您是如何填充表单数据数组的
?让我看看。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。将您的axios配置更改为'Content-type':未定义的
为'Content-type':'multipart/form data'
。现在显示为”内容类型缺少边界
这就是我传入未定义的原因您如何填充formDataArray
?让我看看。photos.forEach(元素=>{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。虽然照片是2,但只上载了一个文件。它可以工作。附加新文件时必须使用不同的键。不需要使用不同的键,如果将多个文件附加到同一formdata
key@Vivek_Neel你是怎么解决的这个?我的数据有2个数组,但当我尝试在后端php中回显时,它只显示1个数组object@Vivek_Neel在这种情况下,您需要为2个图像阵列提供2个FormData实例。虽然照片是2,但只上载了一个文件。它工作正常。添加新文件时必须使用不同的键。不需要使用不同的键,它应该如果将多个文件附加到同一FormData
key@Vivek_Neel您是如何解决这个问题的?我的数据有2个数组,但当我尝试在后端php中回显时,它只显示1个数组object@Vivek_Neel在这种情况下,您需要为2个图像数组提供2个FormData实例