簡體   English   中英

使用改造將文件數組上傳到服務器

[英]Uploading array of Files to server using Retrofit

該應用程序的 API 已經開發完畢。 該 api 適用於 POSTMAN。 POSTMAN 請求正文我不知道如何使用改造在 android 中做同樣的事情。 我試過數組列表。 每次我收到相同的 errorMsg。 {"error":true,"errorMsg":"The images must be an array."}在郵遞員中工作正常。

我的代碼是

我的界面

@Multipart
@POST("upload/prescription")
fun uploadPrescription(
    @Query("token") token: String,
    @Part image: List<MultipartBody.Part>): Call<RequestBody>

我調用服務器的代碼

 val file = File(imageUri.toString())
 val requestBody:RequestBody = RequestBody.create("image/*".toMediaTypeOrNull(),file)

 val multiType = ArrayList<MultipartBody.Part>()

 multiType.add(MultipartBody.Part.createFormData("images","123456",requestBody))

 val call = RetrofitClient.getApiWithGson().uploadPrescription(SharedPref.getIsToken(this@AttachPrescription).toString(),multiType)

    call.enqueue(object : Callback<RequestBody> {
        override fun onFailure(call: Call<RequestBody>, t: Throwable) {
            Log.d("Failure",t.message.toString())
        }

        override fun onResponse(call: Call<RequestBody>, response: Response<RequestBody>) {
            Log.d("Response Upload",response.body().toString())
        }

    })

我得到了輸出

Response Upload: {"error":true,"errorMsg":"The images must be an array."}

請嘗試幫助我,這將非常有幫助謝謝

提前致謝 !

將數組發送到后端仍然與您當前擁有的代碼相同,只需稍作更改:

multiType.add(MultipartBody.Part.createFormData("images[]", fileName, requestBody))

您現在應該注意到,所有文件現在都使用相同的名稱,后跟 []。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM