android上传多图片使用FileBody

xiaoxiao2021-02-28  7

在开发中曾经遇到一个问题,前端界面需要往后台CRM上传文字和图片,实现方法主要分三步:

一:上传数据的接口参数

当后台确定了上传时需要接收的参数后,你需要做的是用类似键值对的方式给它传递value值,如下:

MultipartEntity entity = new MultipartEntity(); try { entity.addPart("source", new StringBody("6")); //固定传参//TODO entity.addPart("linkMan", new StringBody(etCompanyLinkman.getText().toString(), Charset.forName("UTF-8"))); entity.addPart("companyName", new StringBody(etCompanyName.getText().toString(), Charset.forName("UTF-8"))); entity.addPart("cLicNum", new StringBody(etCompanyClicNum.getText().toString())); entity.addPart("tel", new StringBody(SystemInfo.getInstance(getApplicationContext()).getPhone())); entity.addPart("companyProvince", new StringBody(province, Charset.forName("UTF-8"))); entity.addPart("companyCity", new StringBody(city, Charset.forName("UTF-8"))); entity.addPart("companyArea", new StringBody(district, Charset.forName("UTF-8"))); if (uploadFiles != null && uploadFiles.size() > 0) { int picIndex = 1; for (int i = 0; i < uploadFiles.size(); i++) { entity.addPart("pic" + picIndex, new FileBody(uploadFiles.get(i),"image/jpeg")); picIndex++; } } } catch (UnsupportedEncodingException e1) { e1.printStackTrace(); }

二:验证json出来的字符串的正确性

主要还是根据服务端返回的json来判断上传的数据是否成功,成功则服务端给前端返回成功的信号来继续下一步操作

三:成功、失败、异常

根据不同情况去耗时操作中处理不同异常情况

而今天我要说的主要是第一步的上传数据的操作,如下图红色标记处:

在开始,此处没有加该参数,这时后台crm无法查看到我上传的图片,它的存储路径为:

upload/shopAudit/2017/11/28/wl9SDdJKS02p3Bris658h8UWmAa0f5Dk.png

咨询过后说要爱upload前加上斜杠——> /

但是代码中上传的只是图片,用流的方式上传,不会对后台存储路径造成改变,但是此时IOS的可以,路径前加了斜杠,于是很疑惑的我又查看了下代码,找了半天才知道,这是上传图片的方式导致的

图片头添加Content-Type,“image/jpeg”

于是,问题就这样解决了,很揪心,但是依然表示代码层太高深,没能弄明白具体细节。

参考:http://blog.csdn.net/agods/article/details/7307677

http://blog.csdn.net/shareus/article/details/52203198

转载请注明原文地址: https://www.6miu.com/read-1150259.html

最新回复(0)