热门标签 | HotTags
当前位置:  开发笔记 > 运维 > 正文

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

这篇文章主要介绍了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

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


推荐阅读
  • 本文介绍了在开发Android新闻App时,搭建本地服务器的步骤。通过使用XAMPP软件,可以一键式搭建起开发环境,包括Apache、MySQL、PHP、PERL。在本地服务器上新建数据库和表,并设置相应的属性。最后,给出了创建new表的SQL语句。这个教程适合初学者参考。 ... [详细]
  • 在Android开发中,使用Picasso库可以实现对网络图片的等比例缩放。本文介绍了使用Picasso库进行图片缩放的方法,并提供了具体的代码实现。通过获取图片的宽高,计算目标宽度和高度,并创建新图实现等比例缩放。 ... [详细]
  • 这是原文链接:sendingformdata许多情况下,我们使用表单发送数据到服务器。服务器处理数据并返回响应给用户。这看起来很简单,但是 ... [详细]
  • Centos7.6安装Gitlab教程及注意事项
    本文介绍了在Centos7.6系统下安装Gitlab的详细教程,并提供了一些注意事项。教程包括查看系统版本、安装必要的软件包、配置防火墙等步骤。同时,还强调了使用阿里云服务器时的特殊配置需求,以及建议至少4GB的可用RAM来运行GitLab。 ... [详细]
  • 禁止程序接收鼠标事件的工具_VNC Viewer for Mac(远程桌面工具)免费版
    VNCViewerforMac是一款运行在Mac平台上的远程桌面工具,vncviewermac版可以帮助您使用Mac的键盘和鼠标来控制远程计算机,操作简 ... [详细]
  • baresip android编译、运行教程1语音通话
    本文介绍了如何在安卓平台上编译和运行baresip android,包括下载相关的sdk和ndk,修改ndk路径和输出目录,以及创建一个c++的安卓工程并将目录考到cpp下。详细步骤可参考给出的链接和文档。 ... [详细]
  • 【Windows】实现微信双开或多开的方法及步骤详解
    本文介绍了在Windows系统下实现微信双开或多开的方法,通过安装微信电脑版、复制微信程序启动路径、修改文本文件为bat文件等步骤,实现同时登录两个或多个微信的效果。相比于使用虚拟机的方法,本方法更简单易行,适用于任何电脑,并且不会消耗过多系统资源。详细步骤和原理解释请参考本文内容。 ... [详细]
  • 如何用UE4制作2D游戏文档——计算篇
    篇首语:本文由编程笔记#小编为大家整理,主要介绍了如何用UE4制作2D游戏文档——计算篇相关的知识,希望对你有一定的参考价值。 ... [详细]
  • 关于我们EMQ是一家全球领先的开源物联网基础设施软件供应商,服务新产业周期的IoT&5G、边缘计算与云计算市场,交付全球领先的开源物联网消息服务器和流处理数据 ... [详细]
  • XML介绍与使用的概述及标签规则
    本文介绍了XML的基本概念和用途,包括XML的可扩展性和标签的自定义特性。同时还详细解释了XML标签的规则,包括标签的尖括号和合法标识符的组成,标签必须成对出现的原则以及特殊标签的使用方法。通过本文的阅读,读者可以对XML的基本知识有一个全面的了解。 ... [详细]
  • 本文详细解析了JavaScript中相称性推断的知识点,包括严厉相称和宽松相称的区别,以及范例转换的规则。针对不同类型的范例值,如差别范例值、统一类的原始范例值和统一类的复合范例值,都给出了具体的比较方法。对于宽松相称的情况,也解释了原始范例值和对象之间的比较规则。通过本文的学习,读者可以更好地理解JavaScript中相称性推断的概念和应用。 ... [详细]
  • Linuxchmod目录权限命令图文详解在Linux文件系统模型中,每个文件都有一组9个权限位用来控制谁能够读写和执行该文件的内容。对于目录来说,执行位的作用是控制能否进入或者通过 ... [详细]
  • 在Docker中,将主机目录挂载到容器中作为volume使用时,常常会遇到文件权限问题。这是因为容器内外的UID不同所导致的。本文介绍了解决这个问题的方法,包括使用gosu和suexec工具以及在Dockerfile中配置volume的权限。通过这些方法,可以避免在使用Docker时出现无写权限的情况。 ... [详细]
  • 本文介绍了高校天文共享平台的开发过程中的思考和规划。该平台旨在为高校学生提供天象预报、科普知识、观测活动、图片分享等功能。文章分析了项目的技术栈选择、网站前端布局、业务流程、数据库结构等方面,并总结了项目存在的问题,如前后端未分离、代码混乱等。作者表示希望通过记录和规划,能够理清思路,进一步完善该平台。 ... [详细]
  • 本文详细介绍了解决全栈跨域问题的方法及步骤,包括添加权限、设置Access-Control-Allow-Origin、白名单等。通过这些操作,可以实现在不同服务器上的数据访问,并解决后台报错问题。同时,还提供了解决second页面访问数据的方法。 ... [详细]
author-avatar
苏汉文健康_706
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有