为了账号安全,请及时绑定邮箱和手机立即绑定

Android中 使用okhttp3上传图片数组遇到的坑

标签:
Android

以下是自己的一个小心得

 由于以前做多张图片上传到后台服务起的时候,自己前端的做法都是基本都是 使用 :1,将本地获取到的照片进行base64转换之后以某个符号分隔进行拼接传到后台。2,或者使用list<file> list 上传整个集合。

由于okhttp3 封装好的方法不支持直接上传数组对象 ,所以需要自己处理一下,

//  可以直接使用下面方法

    private void postDataWithParame() {

        

        OkHttpClient client = new OkHttpClient();

        MultipartBody.Builder builder = new MultipartBody.Builder().setType(MultipartBody.FORM);

        builder.addFormDataPart("token",token);//传递键值对参数

        builder.addFormDataPart("a","create_discover");//传递键值对参数

        builder.addFormDataPart("remarks","4545454");//传递键值对参数

        for (int i = 0; i < defList.size(); i++) {

            builder.addFormDataPart("thumb[]",null, RequestBody.create(MediaType.parse("image/jpeg; charset=utf-8"),Tools.imageToBase64(defList.get(i))));

        }

        Request request = new Request.Builder()//创建Request 对象。

                .url(url)

                .post(builder.build())//传递请求体

                .build();

        client.newCall(request).enqueue(new Callback() {

            @Override

            public void onFailure(Call call, IOException e) {

            }

            @Override

            public void onResponse(Call call, Response response) throws IOException {

                Log.d("AddAlbumActivity", response.body().string());

            }

        });

    }

  最需要注意的是这里

    for (int i = 0; i < defList.size(); i++) { // 循环添加图片

            builder.addFormDataPart("thumb[]",null, RequestBody.create(MediaType.parse("image/jpeg; charset=utf-8"),Tools.imageToBase64(defList.get(i))));

        }

这里上传的是php服务器 thumb 为要上传的参数key 需要在后面加上[] 才能被识别是一个数组对象 ,之前没有加上这个符号的时候怎么传都只有一张图片 加上之后就会被成功解析数组所对应的值。

  List<String> defList = new ArrayList<>();

defList .add("图片的资源路径");

defList .add("图片的资源路径");

原文链接:http://www.apkbus.com/blog-398810-77287.html

点击查看更多内容
TA 点赞

若觉得本文不错,就分享一下吧!

评论

作者其他优质文章

正在加载中
  • 推荐
  • 评论
  • 收藏
  • 共同学习,写下你的评论
感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦
今天注册有机会得

100积分直接送

付费专栏免费学

大额优惠券免费领

立即参与 放弃机会
意见反馈 帮助中心 APP下载
官方微信

举报

0/150
提交
取消