gpt4 book ai didi

javascript - 使用图片 URI 将照片上传到 Firebase 存储

转载 作者:数据小太阳 更新时间:2023-10-29 03:56:58 24 4
gpt4 key购买 nike

我目前正在尝试将照片上传到我的 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);

}

然后尝试将图像转换为文件并使用以下函数将其推送到我的 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);
});
}

我同时安装了文件和相机 cordova 插件,我尝试这样做时遇到的唯一错误是

Error in Success callbackId: File1733312835 : [object Object]

这只是来自 cordova.js 的错误消息

我也知道我的 Firebase 存储设置正确,因为我已经通过模拟器通过添加文件输入并成功将用户添加的任何文件上传到 Firebase 存储对其进行了测试。

是否可以使用这种通过其 URI 将图像转换为文件然后上传的方法将文件上传到 Firebase 存储?如果是这样,这样做的正确方法是什么/我这样做的方式有什么问题?

最佳答案

我能够使用数据 url 完成上传图像。下面是我的代码:

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!');
});

关于javascript - 使用图片 URI 将照片上传到 Firebase 存储,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51450921/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com