实现android上传多张图片和文字给php后台

这篇博客介绍了如何使用okHttp-utils库在Android端上传图片和文字到PHP后台,避免了流操作,而是直接传递图片地址。通过异步执行回调,实现了多图加文字的成功上传。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

这俩天做一个和php后台交互上传图片文字的需求, 看了一下网络上的案例,大概好多都是将文件转换为字节流传的,而且好多都是照搬,搜索一个,点进去都出自一人之手,各种转发…然后就不说了,保留个人意见.
我测试了百度 “android上传图片给php后台” 上面传的最热的流操作的方法, 可行,成功将图片传给了后台,但是由于种种原因,个人选择了换种方式,直接传递图片地址试试.决定用okHttp来上传图片、文字数据.这里直接使用okhttp-utils,鸿神的一个okhttp二次封装的库,地址:https://github.com/hongyangAndroid/okhttp-utils 有兴趣的可以去看看
android studio 添加

compile project(':okhttputils')

Eclipse 也可以去上面的地址添加

 //List集合放的图片地址
 private List<String> path=new ArrayList<>();
//其他代码 略略略  直接看上传这一块
....
 //先测试一张图片和文字上传给php
File file=new File(path.get(0));

 OkHttpUtils.post()
            .url(Connector.PUBLISH)
            .addFile("upfile",path.get(0),file)//传递一张图片 (前面的字段和php协商好,保持一致都)
            .addParams("imgNum",tag) // 个人根据需求添加的判断字段,直接无视...
            .addParams("water","20") //...无视 
            .addParams("count","10") //..无视
            .addParams("title",writing_title.getText().toString()) //editText取得的文字内容
            .addParams("articles",writing_content.getText().toString()) //editText取得的文字内容
            .build()
            .execute(new Callback() { 
            //异步执行,回调三个方法 
      @Override
      public Object parseNetworkResponse(Response response) throws IOException {

             return response;
      }

      @Override
      public void onError(Request request, Exception e) {
             Log.e("flag", "--------------------->onError: " +request);
      }

      @Override
      public void onResponse(Object response) {
           Response response1 = (Response) response;
          try {
             String string = response1.body().string();
              } catch (IOException e) {
              e.printStackTrace();
         }
       }
     });

注意这里异步执行回调的方法,第一个是异步返回的结果,但是不是ui线程, 继续将response 返回,
return response; 第二个是error, 第三个用来接收第一个返回来的结果, 由于是Object 类型,直接强转为
okHttp的Response,然后就得到返回的数据了…测试,成功!php后台开心的获得了图片和文字,恩,不错..
多图上传直接添加一个for循环遍历一下集合中的图片地址就行, OK.
多图上传代码:

 PostFormBuilder url = OkHttpUtils.post().url(Connector.PUBLISH);
                for (int i = 0; i <path.size() ; i++) {
                        file=new File(path.get(i));
                        url.addFile("upfile",path.get(i),file);
                }
                        url.addParams("imgNum",tag) // 个人根据需求添加的判断字段,直接无视...
                        .addParams("water","20")
                        .addParams("count","10")
                        .addParams("title",writing_title.getText().toString())
                        .addParams("articles",writing_content.getText().toString())
                        .build()
                        .execute(new Callback() {
                        ......

多图加文字上传成功,php很开心的又接收了多张图片..

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值