java - android 将图像上传到服务器的有效方法

标签 java php android upload android-volley

我正在寻找一种将图像从android上传到php服务器的方法,目前我正在将图像编码为base64并发送,但是太慢了,有没有更好的方法

我使用 volley 作为网络客户端。

最佳答案

我的2美分:

根据您的目标,几乎没有什么可以改进的。

  1. 如果您担心数据使用量,则可以在上传前减小图像的大小。现在,对于较新的手机型号来说,图片分辨率非常高。您可以在上传之前在设备本身上更改图像的大小。例如:How to resize image (Bitmap) to a given size?Decrease image size without losing its quality in android
  2. 如果您担心上传图片时会阻止用户:
    • 在后台执行上传部分,这样就不会阻止用户执行任何操作。
    • 此外,按照评论中的建议,您可以进行分段上传,这样万一上传出现问题,您不必再次上传整个内容。
  3. 如果您只担心上传时间:
    • 您需要更好的网络连接或减小图像大小。如果您知道大多数用户将位于连接性较低的区域,那么减小大小可能会更好。
    • 您可以使用一些库,例如 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/

相关文章:

php - 将 Eloquent 模型绑定(bind)到服务容器

java - 应用程序崩溃后服务无法继续运行

android - 如何使用 Google 位置服务从位置知道源提供者

java - 覆盖 Hibernate 注解

java - Maven 编译多个 src 目录

Java - 获取/设置内容类型为 "text/html"的 JTextPane 的行高

php - 将日期列表添加到数据库

php - 如何将HTML数据转换为json、php、mysql?

java - 当我在 CardStackView 的最后一项时?

java - 如何用Java解决这个国际象棋骑士问题?