我正在构建一个 Flutter 应用程序,我希望将数据保持在离线状态。
我正在使用相机或图库图像选择器捕获图像,并且能够将该图像存储到File image变量中。
File _avatarImg;
void _getImage(BuildContext context, ImageSource source) {
ImagePicker.pickImage(
source: source,
maxWidth: 400.0,
maxHeight: 400.0,
).then((File image) {
_avatarImg = image;
});
}
Run Code Online (Sandbox Code Playgroud)
这非常有效,但我的问题是,我将如何存储此图像以保持持久性?我是否应该在图像所在的手机中存储指向本地媒体目录的字符串链接?如果是这样,我会担心图像是否被用户意外删除。或者我是否将图像本身存储到 BLOB 中的数据库中?这方面的最佳做法是什么?
什么是在数据库中存储图像的最佳格式,例如二进制,base64等,以获得最佳速度/大小.
我正在开发一个Android应用程序,当用户可以将图像发送到我的webservice.
目前在我的WebService上,我得到一个Base64字符串并将其保存在我的数据库的表中.
我的问题:这是一个好习惯吗?因为据我所知,Base64字符串是一个重字符串.我担心的是db性能,就像这个表大于10000 ... 100000条记录一样.
或者我应该避免这种行为?
例如:Isntead将Base64字符串存储在数据库中,我可以恢复映像并仅在我的数据库中保存URL.
Ps:数据库是SqlServer
感谢帮助人员
是否可以在数据库中存储从画布中提取的"数据URL",toDataURL("image/png");并通过检索此"数据URL"重建图像?我试图将'数据网址'存储到BLOB.
各自的优点和缺点是什么?
我的要求是:
我在服务器端使用的数据库是MS SQL 2005。我相信SQLLite和MS SQL 2005可以支持varchar和varbinary(sqllite上的BLOB)