gpt4 book ai didi

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

转载 作者:太空宇宙 更新时间:2023-11-03 10:54:46 28 4
gpt4 key购买 nike

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

我想在编写客户端服务器通信代码时牢记一个标准。

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

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

提前致谢。

CB

最佳答案

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

我必须编写一个应用程序,用于使用 httppost 上传/下载大文件(超过 10-20MB)。下载很容易,因为您可以使用 http“范围” header 。不过,我想不出一种通过上传来做到这一点的方法。

我能想到的最好方法是用 RandomAccessFile 打开你的文件,从您的文件中读取一个 block 并将其写入临时文件,然后上传该临时文件。遍历整个文件,为每个 block 创建一个临时文件。在首选项中跟踪您所在的 chunkNum。如果成功,则将 chunkNum 设置回 0。

如果上传中途连接失败,下次尝试上传时,首先检查你的 chunkNum preference 是否大于 0。RandomAccessFile 的 seek() 方法将文件指针移动到适当的 block 和简历。

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

关于android - 将大文件(约 2MB)上传到服务器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7241271/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com