Rog*_*r99 9 javascript phonegap-plugins cordova firebase firebase-storage
我目前正在尝试将照片上传到我的Apache Cordova应用中的Firebase应用存储中.我目前使用以下代码获取照片的URI:
function getPhotoFromAlbum() {
navigator.camera.getPicture(onPhotoURISuccess, onFail, {
quality: 50,
sourceType: navigator.camera.PictureSourceType.SAVEDPHOTOALBUM,
destinationType: navigator.camera.DestinationType.FILE_URI
});
}
function onPhotoURISuccess(imageURI) {
var image = document.getElementById('image');
image.style.display = 'block';
image.src = imageURI;
getFileEntry(imageURI);
}
Run Code Online (Sandbox Code Playgroud)
然后我尝试将图像转换为文件并使用以下函数将其推送到我的Firebase存储:
function getFileEntry(imgUri) {
window.resolveLocalFileSystemURL(imgUri, function success(fileEntry) {
console.log("got file: " + fileEntry.fullPath);
var filename = "test.jpg";
var storageRef = firebase.storage().ref('/images/' + filename);
var uploadTask = storageRef.put(fileEntry);
}, function () {
// If don't get the FileEntry (which may happen when testing
// on some emulators), copy to a new FileEntry.
createNewFileEntry(imgUri);
});
}
Run Code Online (Sandbox Code Playgroud)
我安装了文件和相机cordova插件,我尝试这样做的唯一错误是
Error in Success callbackId: File1733312835 : [object Object]
Run Code Online (Sandbox Code Playgroud)
这只是来自cordova.js的错误消息
我也知道我的Firebase存储设置正确,因为我已经通过模拟器测试了它,通过添加文件输入并成功上传用户添加的任何文件到Firebase存储.
是否可以使用这种通过URI将图像转换为文件然后上传的方法将文件上传到Firebase存储?如果是这样,那么这样做的正确方法是什么/我做的方式有什么问题?
我能够使用数据网址完成图像上传。下面是我的代码:
var filename = "test.jpg";
var storageRef = firebase.storage().ref('/images/' + filename);
var message = 'data:image/jpg;base64,' + imageUri;
storageRef.putString(message, 'data_url').then(function (snapshot) {
console.log('Uploaded a data_url string!');
});
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1647 次 |
| 最近记录: |