Android usa okhttp3 y retrofit2 para la carga de archivos únicos y múltiples

 

Tabla de contenido

prefacio

1. Carga de un solo archivo

2. Sube varios archivos

Resumir



 

prefacio

 En el proyecto de desarrollo, se requiere la función de carga de un solo archivo y varios archivos. La ApiResponse que se muestra a continuación es el valor de retorno del autoempaquetado, que debe completarse de acuerdo con su propio proyecto. El framework mvvm utilizado, kotlin coroutine.

Mire la idea general y la forma de pasar parámetros, solo como referencia


 

1. Carga de un solo archivo

 1. En apiService

     @Multipart
    @POST("xxxx/xxx")
    suspend fun upload(
        @Part part: MultipartBody.Part,
        @Query("code") code: String
    ): ApiResponse<String>

2. código de actividad

  val file = File(it)
  val requestBody: RequestBody = RequestBody.create(MediaType.parse("image/*"), file)

  val part = MultipartBody.Part.createFormData("file", file.getName(), requestBody)

  mViewModel.upload(part)

2. Sube varios archivos

 1. En apiservice

    @POST("xxx/xxxxs")
    suspend fun uploads(
        @Body part: MultipartBody,
        @Query("code") code: String
    ): ApiResponse<String>

2. código de actividad

      val builder = MultipartBody.Builder()
            builder.setType(MultipartBody.FORM)
             getDataList()?.filter { !it.filePath.isNullOrEmpty() }.forEach {
                val file = File(it.filePath)
                builder.addFormDataPart(
                    "files",
                    file.getName(),
                    RequestBody.create(MediaType.parse("image/jpg"), file)
                )
            }

            mViewModel.uploads(builder.build())


Resumir

 Para registrar y resumir, es necesario llevar a cabo la transformación de referencia de acuerdo con su propio marco.

Supongo que te gusta

Origin blog.csdn.net/weixin_41620505/article/details/127534431
Recomendado
Clasificación