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

compile project(':okhttputils')

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

 //List集合放的图片地址 private List path=new ArrayList<>();//其他代码 略略略  直接看上传这一块.... //先测试一张图片和文字上传给phpFile 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                         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很开心的又接收了多张图片..

更多相关文章

  1. Android使用Glide加载带图片列表时,快速上拉加载更多会闪烁
  2. Android简易实战教程--第二十八话《加载大图片》
  3. android 将res内图片文件通过Bitmap对象存到手机本地中
  4. android 中.9图片的用法 详解
  5. android中使用ViewPager实现图片左右拖动
  6. Android中Bitmap内存占用分析
  7. Android(安卓)高仿 IOS7 IPhone 解锁 Slide To Unlock 附源码
  8. Android(安卓)>> 27. Android(安卓)Studio 9-Patch 图片制作以及
  9. Android拍照或从系统相册获取图片

随机推荐

  1. Android:ADT-22.3.0
  2. android m classpath
  3. item_dropdown
  4. Android面试(13): Android(安卓)中返回数
  5. Android(安卓)Oreo 常见问题 2.0 | Andro
  6. android LinearLayout布局
  7. Android Helper 帮助类
  8. android - ANR keyDispatchingTimedOut
  9. android 分辨率标题栏及状态栏高度
  10. 自制表盘