0
我有一個獲取照片並獲取FILE_URI的函數。其工作原理:Phonegap使用Ajax發送圖像會導致[Object ArrayBuffer]而不是二進制
navigator.camera.getPicture(function (data) {
if (data === false) {
// Error, or cancel
} else {
var fio = new FileIO();
fio.getFile(data, function(result){
_this.photo = result;
}, function(){ });
_this.templateManager.holder.find("#profielFoto").css("background-image", "url(" + data + ")").addClass("picture");
}
}, function(){
}, {
sourceType: navigator.camera.PictureSourceType.CAMERA,
quality: 100,
destinationType: navigator.camera.DestinationType.FILE_URI,
allowEdit: true,
correctOrientation: true,
targetWidth : 200,
targetHeight: 200
});
現在旁邊,結果我從fio.getFile得到的結果是:
FileIO.prototype.getFile = function(filename, cb, error){
window.resolveLocalFileSystemURI(filename, function(fileEntry) {
fileEntry.file(function(file) {
var reader = new FileReader();
reader.onloadend = function(evt) {
cb(evt.target.result);
};
//reader.onerror = error;
reader.readAsArrayBuffer(file);
}, error);
}, error);
};
所以_this.photo
是ArrayBuffer。現在我不想發送這個ajax帖子。這是可能的,但我不能得到它的工作。數據庫中的數據是[Object ArrayBuffer],但我沒有做任何事情。
var data = new FormData();
data.append("photo", this.photo);
data.append("firstname", $("input[name=firstname]").val());
data.append("insertion", $("input[name=insertion]").val());
data.append("lastname", $("input[name=lastname]").val());
data.append("emailaddress", $("input[name=emailaddress]").val());
data.append("passwordhash", $("input[name=passwordhash]").val());
var xhr = new XMLHttpRequest();
xhr.open('POST', PostURL, true);
xhr.onload = function(oEvent) {
if (xhr.status == 200) {
alert("OK");
} else {
alert("ERROR");
}
};
xhr.send(data);
問:怎麼可能這個職位[對象ArrayBuffer],而不是我的二進制數據?