实现android上传多张图片和文字给php后台
16lz
2021-01-26
这俩天做一个和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很开心的又接收了多张图片..
更多相关文章
- Android使用Glide加载带图片列表时,快速上拉加载更多会闪烁
- Android简易实战教程--第二十八话《加载大图片》
- android 将res内图片文件通过Bitmap对象存到手机本地中
- android 中.9图片的用法 详解
- android中使用ViewPager实现图片左右拖动
- Android中Bitmap内存占用分析
- Android(安卓)高仿 IOS7 IPhone 解锁 Slide To Unlock 附源码
- Android(安卓)>> 27. Android(安卓)Studio 9-Patch 图片制作以及
- Android拍照或从系统相册获取图片