android批量文件上传(android批量图片上传)
16lz
2021-01-26
在百度完所有的的批量上传文件或图片无果之后。要么写的太渣、要么写的太乱,反正没让我看懂,最终决定进下心来自己写........
有这么一个需求,“我要上传姓名、身份证号、机构代码、身份证照片、营业执照、组织机构图”
其实很简单用MultipartEntity类就可以完成数据的传送, 我最开始用的是NameValuePair这个类,这个类只能存以String为键值的类型,接着我就走入误区,把文件各种转换,但是最终无果。
代码如下:
public void certification(String name, String idCode, String code) {//参数1:姓名 参数2:身份证 参数3:机构代码 HttpClient httpclient = new DefaultHttpClient(); //设置通信协议版本 httpclient.getParams().setParameter(CoreProtocolPNames.PROTOCOL_VERSION, HttpVersion.HTTP_1_1); /*建立HTTP Post联机*/ HttpPost httpRequest = new HttpPost(PublicVariable.putMateria);//参数为服务器的url // Post运作传送数据用 MultipartEntity mpEntity = new MultipartEntity(); try { mpEntity.addPart("name", new StringBody(name));//StringBody将name转成字符串 mpEntity.addPart("identification", new StringBody(idCode)); mpEntity.addPart("org_code", new StringBody(code)); //mFileList是3张图片的文件路径 List<File> mFileList; for (int i = 0; i < mFileList.size(); i++) { File file = mFileList.get(i); mpEntity.addPart("file", new FileBody(file));//主要就是它,转换成文件 Log.e("akui", "3张图片文件 == " + file); } } catch (UnsupportedEncodingException ignored) { } try { /*发出HTTP request*/ httpRequest.setEntity(mpEntity); /*取得HTTP response*/ HttpResponse httpResponse = new DefaultHttpClient().execute(httpRequest); /*若状态码为200 ok*/ if (httpResponse.getStatusLine().getStatusCode() == 200) { /*取出响应字符串*/ String strResult = EntityUtils.toString(httpResponse.getEntity()); Log.e("------->", "响应结果:true"); Log.e("------->", "响应结果:" + strResult); JSONObject json = new JSONObject(strResult); int result = json.getInt("result"); Log.e("------->", "result == " + result); if (result == 0) { sendHintMessage("数据上传成功", true); } else { String erro = json.getString("msg"); sendHintMessage(erro, false); } Log.e("------->", "msg:" + json.toString()); } else { Log.e("------->", "响应结果:false"); } } catch (ClientProtocolException e) { } catch (IOException e) { } catch (Exception e) { } }谢谢欣赏;
更多相关文章
- Android它Service
- Android预置Apk方法
- [Android]如何做一个崩溃率少于千分之三噶应用app(10)-ModuleBus交
- 使用AudioRecord实现暂停录音功能
- android基础知识16:多分辨率屏显设计及其兼容性测试
- Android(安卓)Studio加载慢/导入包慢/gradle慢的解决办法
- Android(安卓)Studio SVN/Git之忽略文件
- 6.1、Android(安卓)Studio配置构建
- Andriod内嵌HTML5项目构建以及整包更新配置