上传图片到服务器 关于图片大小的问题

CJ134618 2012-05-10 10:52:46
我正在做一个上传图片到webservice的程序,用的是Ksoap2连接webservice
然后把图片转换为字节数组 ,再把字节用Base64编码 然后发送到服务器
代码如下

String imageBmp=new String(Base64.encode(BitmaptoBytes(myBitmap)));

private static byte[] BitmaptoBytes(Bitmap bm)//把bitmap转换为字节数组------------------------------------
{
try
{

ByteArrayOutputStream baos = new ByteArrayOutputStream();
bm.compress(Bitmap.CompressFormat.PNG, 100, baos);
return baos.toByteArray();
}
catch(Exception e)
{
Toast.makeText(new RunBowTMSActivity(),"转换失败",Toast.LENGTH_LONG).show();
return null;
}

}


上传几百K的图片没有问题,但是再上传一张700多K的图片是就报错了 报错信息如下


05-10 02:40:46.843: E/dalvikvm-heap(737): Out of memory on a 3018698-byte allocation.
05-10 02:40:46.883: E/AndroidRuntime(737): FATAL EXCEPTION: main
05-10 02:40:46.883: E/AndroidRuntime(737): java.lang.OutOfMemoryError
05-10 02:40:46.883: E/AndroidRuntime(737): at java.io.ByteArrayOutputStream.expand(ByteArrayOutputStream.java:91)
05-10 02:40:46.883: E/AndroidRuntime(737): at java.io.ByteArrayOutputStream.write(ByteArrayOutputStream.java:216)
05-10 02:40:46.883: E/AndroidRuntime(737): at adidas.TMS.AndroidHttpTransport.call(AndroidHttpTransport.java:38)


请教大家是怎么做的?有没有这样的问题? 怎么解决?

能看到这里我就非常感谢了!^-^ 能指点一二就更好了 !
...全文
290 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
greenredshark 2012-06-07
  • 打赏
  • 举报
回复
楼主这个问题,你解决了吗
CJ134618 2012-05-11
  • 打赏
  • 举报
回复
哦 谢谢了 我再仔细看下
qdkfriend 2012-05-10
  • 打赏
  • 举报
回复
内存溢出了 做个分块协议吧
CJ134618 2012-05-10
  • 打赏
  • 举报
回复
有没有高人来看看啊~!
qdkfriend 2012-05-10
  • 打赏
  • 举报
回复
你转换之前 压缩了 不知道是不是那里出问题了
你的转换为二进制数组没问题 都是这么做的
CJ134618 2012-05-10
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 的回复:]
内存溢出了 做个分块协议吧
[/Quote]
你的意思是分成几个部分来提交给服务器?但是是在转换为二进制数组的时候报的错啊~ 难道我转换的方式不对?

80,493

社区成员

发帖
与我相关
我的任务
社区描述
移动平台 Android
androidandroid-studioandroidx 技术论坛(原bbs)
社区管理员
  • Android
  • yechaoa
  • 失落夏天
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧