android – 将大尺寸文件(大约2MB)上传到服务器

我正在开发一个 Android移动应用程序,它具有按顺序将文件上传到服务器的功能.

我想编写客户端服务器通信代码,牢记标准.

由于要从移动设备上传文件大小约为2MB,我们需要将文件以多个部分(数据块)发送到服务器.在将文件发送到服务器之前,我需要确定运行时的信号强度.例如:在信号强度更大的Wi-Fi环境中,块的数量将更少&与使用2G / 3G连接(使用SIM卡)相比,块大小将更多,其中块的数量将更多&块大小会更少.

任何实现相同的建议/示例代码对我都有帮助.
此外,是否有任何Android或第三方API可以满足要求.

提前致谢.

CB

解决方法

您可以查看 PhoneStateListener来确定信号强度.然后根据它设置一个chunkSize.

我不得不写一个应用程序,我用httppost上传/下载大文件(超过10-20MB).下载很简单,因为您可以使用http“范围”标题.我无法通过上传找到一种方法来做到这一点.

我能想到的最好的方法是用RandomAccessFile打开文件,从文件中读取一个块并将其写入临时文件,然后上传该临时文件.继续完成整个文件,为每个块创建临时文件.跟踪您所选择的chunkNum.如果成功,则将chunkNum设置为0.

如果连接在上传过程中失败,则下次尝试上传时,首先检查chunkNum首选项以查看它是否大于0. RandomAccessFile的seek()方法文件指针移动到相应的块和恢复.

不幸的是,这种方法增加了创建临时文件的延迟,但我想不出更好的解决方案.

相关文章

Android性能优化——之控件的优化 前面讲了图像的优化,接下...
前言 上一篇已经讲了如何实现textView中粗字体效果,里面主要...
最近项目重构,涉及到了数据库和文件下载,发现GreenDao这个...
WebView加载页面的两种方式 一、加载网络页面 加载网络页面,...
给APP全局设置字体主要分为两个方面来介绍 一、给原生界面设...
前言 最近UI大牛出了一版新的效果图,按照IOS的效果做的,页...