android上传多图片使用FileBody

在开发中曾经遇到一个问题,前端界面需要往后台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
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值