我想将从手机拍摄的图像更新为Parse,我们正在努力解决这个简单的功能,因为我们无法将ImageUri转换为带有Phonegap的真实文件(为了将其上传到我们的Parse服务器),我们是使用Ripple来模拟手机行为。
我们尝试使用这段代码:
var reader = new FileReader();
reader.onloadend = function(evt) {
console.log("read success");
console.log(evt.target.result);
evt.target.result;
};
reader.readAsText(user.myPicture);
但我收到此错误:TypeError: Object #<Console> has no method 'warning'
似乎像phonegap的FileReader不喜欢我从navigator.camera.getPicture()获得的那种URI
$scope.getPicture = function(){
navigator.camera.getPicture(onSuccess, onFail,
//Options => http://docs.phonegap.com/en/2.6.0/cordova_camera_camera.md.html#Camera
{ quality: 50,
destinationType:Camera.DestinationType.FILE_URI,
encodingType: Camera.EncodingType.JPEG,
sourceType : Camera.PictureSourceType.PHOTOLIBRARY ,//CAMERA,
targetWidth: 100,
targetHeight: 100
});
function onSuccess(imageURI) {
var image = document.getElementById('preview');
image.src = imageURI;
$scope.myPicture = image.src;
// $scope.$apply(function() {
// ctrl.$setViewValue(image.src);
// });
}
function onFail(message) {
alert('Failed because: ' + message);
ctrl.$setValidity('Failed because: ' + message, false);
}
};
有没有其他方法可以在不使用JQuery $ .get()的情况下获取文件?
有一个类似的帖子here有同样的问题
答案 0 :(得分:3)
我认为你会对我所链接的问题得到同样的答案。
with the info in this post。 。非常感谢Raymond Camden!
function gotPic(data) {
window.resolveLocalFileSystemURI(data, function(entry) {
var reader = new FileReader();
reader.onloadend = function(evt) {
var byteArray = new Uint8Array(evt.target.result);
var output = new Array( byteArray.length );
var i = 0;
var n = output.length;
while( i < n ) {
output[i] = byteArray[i];
i++;
}
var parseFile = new Parse.File("mypic.jpg", output);
parseFile.save().then(function(ob) {
navigator.notification.alert("Got it!", null);
console.log(JSON.stringify(ob));
}, function(error) {
console.log("Error");
console.log(error);
});
}
reader.onerror = function(evt) {
console.log('read error');
console.log(JSON.stringify(evt));
}
entry.file(function(s) {
reader.readAsArrayBuffer(s);
}, function(e) {
console.log('ee');
});
});
}
答案 1 :(得分:0)
我不太明白。您想要保存图片,还是仅显示图片,还是其他什么?
为了保存图片,有人写了一个插件。您可以在此处找到它:base64ToPNG
显示图片:
image.src =“data:image / jpeg; base64,”+ imageURI