我正在努力将图像从ngonic应用程序中的ngCordova相机插件上传到firebase存储中。
我无法使用fileTransfert插件,因为没有带有firebase存储的数据库url(除非我错了......)而且我只能存储文件。
您对如何执行此操作有一些想法吗?
目前我的代码使用cordova文件在blob中读取和转换:
$scope.fromLibrairy = function() {
$ionicPlatform.ready(function() {
var options = {
quality: 50,
destinationType: Camera.DestinationType.FILE_URI,
sourceType: Camera.PictureSourceType.PHOTOLIBRARY,
encodingType: Camera.EncodingType.JPEG,
mediaType: Camera.MediaType.PICTURE,
targetWidth: 300,
targetHeight: 300,
};
$cordovaCamera.getPicture(options).then(function(imageURI) {
$scope.imgURI = imageURI;
var name = imageURI.substring(imageURI.lastIndexOf('/')+1, imageURI.length);
var directory = imageURI.substring(0, imageURI.lastIndexOf('/')+1);
$cordovaFile.readAsArrayBuffer(directory, name).then(function(success) {
alert(success);
var blob = new Blob([success], { type:"image/jpeg" });
// Create the storage ref
var ref = storageRef.child('images/' + name);
// My function to upload in firebase storage (it works with jpeg)
$scope.uploadPhoto(blob, ref);
}, function (error) {
alert("erreur du readAsArrayBuffer" + error + error.code);
})
}, function(error){
alert('erreur du getPicture' + error);
});
});
};
任何帮助将不胜感激! :)
答案 0 :(得分:0)
试试这个......
var name = imageURI.replace(/^.*[\\\/]/, '');
var directory = cordova.file.tempDirectory;
确保安装了$cordovaFile
插件并正确配置了ng-cordova。
请包含具体的错误日志信息
否则完整的解决方案就是类似的问题 - https://stackoverflow.com/a/38708624/122313