首页 > 解决方案 > 使用改造上传多张图像时数组格式的问题

问题描述

使用改造上传多个图像文件时出现问题

首先我像这样ArrayList使用MultipartBody

val list : MutableList<MultipartBody.Part> = arrayListOf()
for(c in uris!!){
    val file : File? = File(getRealPathFromUri(applicationContext,c))

    if(file != null){
        val requestFile = file.asRequestBody("image/*".toMediaTypeOrNull())
        val body : MultipartBody.Part  = MultipartBody.Part.createFormData("files", file.name, requestFile)
        list.add(body)
    }
}

路由接口

@Multipart
@POST("meme-upload")
fun postMeme(
   @Part files: List<MultipartBody.Part>?
): Call<ResponseBody>?

但我只有最后一张图片,我像这样将“文件”更改为“文件 []”


    val requestFile = file.asRequestBody("image/*".toMediaTypeOrNull())
    val body : MultipartBody.Part = MultipartBody.Part.createFormData("files[]", file.name, requestFile)
    list.add(body)

服务器获取数据数组但格式不正确

预期数组

files [
  path_1,
  path_2,
  path_3
]

收到数组

files [
  [
    path_1,
    path_2,
    path_3
  ]
]

我也使用RequestBodyMultipartBody.Builder得到相同的结果

更新

哦,对不起,在与服务器协调后发现这只是命名密钥的问题

标签: androidkotlinretrofitretrofit2

解决方案


哦,对不起,在与服务器协调后发现这只是命名密钥的问题


推荐阅读