提问者:小点点

如何在android中使用改型将多个图像上传到单键


我是新的安卓和我提出这个问题,任何帮助将被感激

这是我的Webservice密钥

   @Part MultipartBody.Part image1[]

我试过这么做

    Map<String,MultipartBody.Part> list = new HashMap<>();
    MultipartBody.Part[] imageParts = new MultipartBody.Part[10];
    for(int i=0;i<=mClipData.getItemCount();i++) {
        File file = new File(String.valueOf(mArrayUri.get(i)));
        final RequestBody requestBody1 = RequestBody.create(MediaType.parse("image/*"), file);
        imageParts[i] = MultipartBody.Part.createFormData("image8", file.getName(), requestBody1);
        Webservice.getClient().addProduct(RequestBody.create(okhttp3.MediaType.parse("text/plain"), mAuth.getCurrentUser().getPhoneNumber()),
                RequestBody.create(okhttp3.MediaType.parse("text/plain"), ItemName.getText().toString()),
                RequestBody.create(okhttp3.MediaType.parse("text/plain"), PriseCoin.getText().toString()),
                RequestBody.create(okhttp3.MediaType.parse("text/plain"), cat),
                RequestBody.create(okhttp3.MediaType.parse("text/plain"), ItemDescription.getText().toString()),
                RequestBody.create(okhttp3.MediaType.parse("text/plain"), ItemDetails.getText().toString()),
                RequestBody.create(okhttp3.MediaType.parse("text/plain"), di),
                RequestBody.create(okhttp3.MediaType.parse("text/plain"), ta), imageParts[i]
        ).enqueue(new Callback<addproduct>() {
            @Override
            public void onResponse(Call<addproduct> call, Response<addproduct> response) {
                
                Toast.makeText(AddProduct.this, "sucess"+response.body().getMsg(), Toast.LENGTH_SHORT).show();
            }
            @Override
            public void onFailure(Call<addproduct> call, Throwable t) {
            }
        });
    }

共1个答案

匿名用户

如何在android中使用改型将多个图像上传到单键

private fun getParts(): ArrayList<MultipartBody.Part> {
        val parts = arrayListOf<MultipartBody.Part>()
        if (baseAdapter?.itemCount ?: 0 > 0) {
            for ((i, item) in baseAdapter?.list?.withIndex()!!) {
                parts.add(prepareParts("images[$i]", (Uri.parse(item?.uri) ?: "") as Uri))
            }

        }
        return parts
    }


    private fun prepareParts(name: String, fileUri: Uri): MultipartBody.Part {
        val file = File(fileUri.path)
        val requestBody = RequestBody.create(MediaType.parse("*/*"), file)
        return MultipartBody.Part.createFormData(name, file.name, requestBody)
    }

并且在使param获得每个图像的部分时

Map<String,MultipartBody.Part> list = new HashMap<>();
ArrayList<MultipartBody.Part> parts = getParts()// this will have all images file name "images[0]": filename... and so..on

您的改型界面

    @Multipart
    @POST("your_file")
    fun pushMulipleImages(@QueryMap param: HashMap<String, String>,@Part parts: List<MultipartBody.Part>)