文件分段转成base64,江湖救急~

你也叫风语者 2015-05-25 01:54:03
一个视频文件,几M大小。要通过http上传到服务器,转换成base64传输。

目前的问题是,在Android手机里,超过3M左右的文件转base64就会内存溢出。

想到一个解决办法,把文件按512K转成byte,然后再转base64.

最后把base64组合成一个大的string传到服务器端。

各位大神帮忙给个分段的算法,转byte 和base64的都有,就是不知道该如何分段,如何改写getBytes这个方法
谢谢了!急用~~


/**
* 获得指定文件的byte数组
*/
private byte[] getBytes(String filePath){
byte[] buffer = null;
try {
File file = new File(filePath);
FileInputStream fis = new FileInputStream(file);
ByteArrayOutputStream bos = new ByteArrayOutputStream(1000);
byte[] b = new byte[1000];
int n;
while ((n = fis.read(b)) != -1) {
bos.write(b, 0, n);
}
fis.close();
bos.close();
buffer = bos.toByteArray();
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
return buffer;
}
...全文
329 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
你也叫风语者 2015-06-10
  • 打赏
  • 举报
回复
引用 4 楼 skgary 的回复:
[quote=引用 2 楼 windtalker1782 的回复:] [quote=引用 1 楼 skgary 的回复:] 直接用mulitpart封装一下啊,为何要堵死在base64这条路上?
服务器端定好了,明天就要交差了。来不及换别的了[/quote] 即使是服务器和客户端两边一起改,也比你死在这条路上好。 而且,你既然已经定位成内存问题,那就只有想办法分段load,分段发送了。。。 除非,你的问题定位本身就是错误的。[/quote] 果然服务器和客户端一起改了!出现了新问题,我再研究研究,多谢指明方向~散分
skgary 2015-05-25
  • 打赏
  • 举报
回复
引用 2 楼 windtalker1782 的回复:
[quote=引用 1 楼 skgary 的回复:] 直接用mulitpart封装一下啊,为何要堵死在base64这条路上?
服务器端定好了,明天就要交差了。来不及换别的了[/quote] 即使是服务器和客户端两边一起改,也比你死在这条路上好。 而且,你既然已经定位成内存问题,那就只有想办法分段load,分段发送了。。。 除非,你的问题定位本身就是错误的。
你也叫风语者 2015-05-25
  • 打赏
  • 举报
回复
跪求大牛
你也叫风语者 2015-05-25
  • 打赏
  • 举报
回复
引用 1 楼 skgary 的回复:
直接用mulitpart封装一下啊,为何要堵死在base64这条路上?
服务器端定好了,明天就要交差了。来不及换别的了
skgary 2015-05-25
  • 打赏
  • 举报
回复
直接用mulitpart封装一下啊,为何要堵死在base64这条路上?

80,349

社区成员

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

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