我正在寻找一种将图像从android上传到php服务器的方法,目前我正在将图像编码为base64并发送,但是太慢了,有没有更好的方法
我使用 volley 作为网络客户端。
最佳答案
我的2美分:
根据您的目标,几乎没有什么可以改进的。
- 如果您担心数据使用量,则可以在上传前减小图像的大小。现在,对于较新的手机型号来说,图片分辨率非常高。您可以在上传之前在设备本身上更改图像的大小。例如:How to resize image (Bitmap) to a given size?和 Decrease image size without losing its quality in android
- 如果您担心上传图片时会阻止用户:
- 在后台执行上传部分,这样就不会阻止用户执行任何操作。
- 此外,按照评论中的建议,您可以进行分段上传,这样万一上传出现问题,您不必再次上传整个内容。
- 如果您只担心上传时间:
- 您需要更好的网络连接或减小图像大小。如果您知道大多数用户将位于连接性较低的区域,那么减小大小可能会更好。
- 您可以使用一些库,例如 Facebook's Network Connection Quality Checker Class去检查 尝试上传并可能等待时的当前网络质量 上传前请确保网络质量良好。
- 您可以选择仅通过 wi-fi 上传并使用
BroadcastReceiver
监听其状态的变化。 例如: BroadcastReceiver when wifi or 3g network state changed - 查看 volley 是否支持
gzip
压缩。如果确实如此,请确保您正在压缩请求。通过这种方式,您可以压缩请求数据,这可以大大改善大小。 Android Volley: gzip response
希望这有帮助。
关于java - android 将图像上传到服务器的有效方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50730420/