在Flutter应用程序中,我必须从远程服务器下载受密码保护的zip
文件夹,然后导入应用程序内部的.sqlite
。
我正在尝试使用archive
库,但是我当然愿意寻求更好的解决方案。
我使用了password
方法的ZipDecoder().decodeBytes()
参数,但是它对我不起作用。
//inside the `onDone()` callback of an http request
Archive archive = ZipDecoder().decodeBytes(
_myDownloadedData,
password: "mySuperSecretPsw", //here I set the archive psw
);
Uint8List fileDbBytes = Uint8List.fromList(archive.first.content);
setAsWorkingDb(fileDbBytes);
上面摘录中的archive.first.content
看起来仍然是加密的。我收到以下错误:
E/SQLiteLog(12256): (26) file is encrypted or is not a database
E/DefaultDatabaseErrorHandler(12256): Corruption reported by sqlite on database: /data/user/0/my.own.package/app_flutter/working_data.db
E/DefaultDatabaseErrorHandler(12256): deleting the database file: /data/user/0/my.own.package/app_flutter/working_data.db
答案 0 :(得分:0)
您可以尝试
Archive archive = ZipDecoder().decodeBytes(
_myDownloadedData,
verify: true,
password: "mySuperSecretPsw", )