【发布时间】:2020-03-14 23:12:28
【问题描述】:
我正在开发一个应用程序来存储大图像,例如2 MB,本地 Sqlite DB 中的 3 MB。但是 2 MB 游标限制导致异常。这个例外有什么解决办法吗?或者,如果我应该将图像以块或部分的形式存储在 sqlite db 中。我应该如何做到这一点?
【问题讨论】:
-
不要将图像存储在数据库中。这只是一个不好的做法。您可以将图像存储在缓存目录、私有应用程序目录、外部存储或云端。然后一旦你存储了图像,将路径/id保存在数据库中。
-
@Froyo 以前我将它们存储在内部存储中,我也认为这是一个很好的做法。但是我要将图像存储在像 Sqlite 这样的本地数据库中,因为我希望应用程序用户无法在我的应用程序之外看到或更改图像。
-
@Froyo 这些图像是从我的应用程序内部捕获的,并从我的应用程序内部上传到客户端服务器。
-
如果图像存储在私有应用程序目录或应用程序缓存中,用户将无法查看/修改图像。可以清理应用缓存。您可以使用诸如 firebase 或 amazon 存储桶之类的东西来存储图像,而用户将无法访问它。 developer.android.com/guide/topics/data/data-storage
-
如果图片是在客户端上传的,则不需要存入数据库。您可以将其存储在应用缓存中,因为您仅在上传之前需要该图像。
标签: java android sqlite mobile blob