我正在研究需要离线工作的离子项目。我的问题是,如何在sqlite数据库中离线保存上传的图像,并在跟踪任何wifi连接时,同步到在线。
使用cordova相机插件和filetransfer插件,在线图片上传工作正常。
答案 0 :(得分:1)
您可以使用cordova文件插件的copyfile方法在本地存储图像,然后将其链接保存在数据库中以供进一步使用。检测到wifi后,只需使用该链接将文件上传到具有相同cordovafile插件的服务器即可。
$cordovaCamera.getPicture(options).then(function(sourcePath) { //for capturing image
console.log(sourcePath);
var sourceDirectory = sourcePath.substring(0, sourcePath.lastIndexOf('/') + 1); //image file with path url
var sourceFileName = sourcePath.substring(sourcePath.lastIndexOf('/') + 1, sourcePath.length); //image name
console.log("Copying from : " + sourceDirectory + sourceFileName);
console.log("Copying to : " + cordova.file.dataDirectory + sourceFileName);
//used to store file locally
$cordovaFile.copyFile(sourceDirectory, sourceFileName,
cordova.file.dataDirectory, sourceFileName).then(function(success) {
$scope.fileName = cordova.file.dataDirectory + sourceFileName;
console.log($scope.fileName, success);
$scope.propic = $scope.fileName;
}, function(error) {
console.log(error);
});
}, function(err) {
console.log(err);
});