【问题标题】:Image storing in SQL DB from Android从 Android 存储在 SQL DB 中的图像
【发布时间】:2017-08-19 05:05:45
【问题描述】:

我想创建一个在 android 中接受图像的应用程序,将其转换为 base64string。生成的 base64 字符串将被发送到 rest API,在那里它被转换为字节数组并存储在 SQL DB 中。这是将图像存储在 SQL DB 中的最佳方式还是有其他可能性?

【问题讨论】:

    标签: android sql image nvarchar varbinary


    【解决方案1】:

    更好的做法是将位置字符串存储在托管执行数据库调用的服务的文件系统上。当您检索“图像”时,您会检索位置并使用它从文件系统中拉回图像,而不是将整个二进制文件存储在数据库中。

    【讨论】:

    • 如果应用程序是从不同的设备为同一用户启动的怎么办?如果文件被删除了怎么办?或者如果文件位置已经移动到不同的地方怎么办?
    • 该文件应位于 REST 服务服务器上 - 而不是客户端设备上。如果文件在服务器上被移动或删除,则应通过相应的 REST 服务调用来完成,该调用也会更新数据库。
    • 好吧,我明白了。你能告诉我为什么我不应该将它存储在 varbinary 中吗?
    • 主要原因是它强制更多的数据传输来检索它(除非 REST 服务与数据库托管在同一台服务器上 - 在这种情况下,它有点主观。)它也不必要增加了数据库的大小,但是对于现代数据库和存储,这可能不是问题。
    【解决方案2】:

    这是我的方式,我会简单地说。首先我创建全局路径,如"yourpath/"

    然后我从服务器获取图像并将其存储在全局路径

    的设备存储中

    然后我只存储像 imagename.jpg 这样的图像名称到 sqlite

    最后,我使用存储在sqlite 中的图像名称并与全局路径 连接,以便在需要时显示图像

    【讨论】:

      猜你喜欢
      • 2013-12-04
      • 2012-04-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-08-26
      • 2021-04-30
      • 1970-01-01
      • 2011-05-31
      相关资源
      最近更新 更多