android多图片上传到服务器上,Android 通过webservice上传多张图片到指定服务器详解...

Android 通过webservice上传多张图片到指定服务器详解

当你浏览这个的时候相信你对webservice的基本应用已经有一定的了解了,若是还没有明白的小伙伴,可以看我前面写的文章点击打开链接,这几天在开发一款app,需要上传图片到指定服务器吧,但是我刚开始以为在网上面应该有这样的好文章的吧,结果我在网络上找了好多代码,在传递图片的过程中,遇到各种bug,真是国人的东西就是喜欢复制别人的,自己不动手检验一下代码的正确性,哎,我也是无语了,然后我决定花点时间来填补一下这个空缺,写了这一片博文,让小伙伴们不走弯路,,首先我修改的网上的错误代码,Android端代码如下:这个是在异步类的一个方法里面,doInBackground(String... params)

InputStream fis;

try {

fis = new FileInputStream(params[0]+params[1]);//params[0]为文件路径,params[1]为文件名称

ByteArrayOutputStream baos = new ByteArrayOutputStream();

byte[] buffer = new byte[4096];

int count =-1;

String uploadBuffer = null ;

try {

while((count = fis.read(buffer))!=-1){

baos.write(buffer, 0, count);

uploadBuffer=Base64.encodeToString(baos.toByteArray(), Base64.DEFAULT); //进行Base64编码Base64.DEFAULT这个不能换成count

}

SoapObject soapObject=webServiceBase.getBaseSimpleData(params[1],uploadBuffer,"getImageFromAndroid",AgbcApi.TASKSERVICEURL);

reque=soapObject.getProperty(0).toString();

} catch (IOException e) {

e.printStackTrace();

}

} catch (FileNotFoundException e1) {

e1.printStackTrace();

}

服务端代码

public String getImageFromAndroid(String filename, String image){

OutputStream fos = null;

try{

Date date=new Date();

DateFormat format=new SimpleDateFormat("yyyy-MM-dd");

String time=format.format(date);

String toDir = "d:\\Program Files\\images\\"+time+"\\"; //存储路径

byte[] buffer = new BASE64Decoder().decodeBuffer(image); //对android传过来的图片字符串进行解码

File destDir = new File(toDir);

if(!destDir.exists())

destDir.mkdir();

fos = new FileOutputStream(new File(toDir,filename)); //保存图片

fos.write(buffer);

fos.flush();

fos.close();

return "上传图片成功!" + "图片路径为:" + toDir;

}catch (Exception e){

e.printStackTrace();

}

return "上传图片失败!";

这样只要调用服务端方法就可以上传图片了

然而,你认为到这就完了吗???没有没有啦!这只能是一张一张图片的上传,可是有时候我们需要批量的图片上传,怎么办呢?既然一张图片都搞定了,何况多上图片,用一个循环不就实现了,然而的然而,都怪我们年少轻狂呀,事情往往不是这个简单的,请看这篇文章:https://www.jb51.net/article/106650.htm

感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值