使用Ajax的Phonegap发送图像的结果是[Object ArrayBuffer],而不是二进制
Phonegap send image with Ajax results in [Object ArrayBuffer] instead of binary
我有一个函数来获取照片和FILE_URI。哪个有效:
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],但我不执行tostring或任何操作。
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);
问题:这怎么可能发布[Object ArrayBuffer]而不是我的二进制数据
您应该使用FileTransfer插件。http://plugins.cordova.io/#/package/org.apache.cordova.file-传输
相关文章:
- 如何将PDF作为二进制文件传递到window.open()
- 如何将字母转换为二进制代码
- Javascript 二进制搜索/插入预处理
- 如何在JavaScript中实现二进制搜索
- 如何在Windows中将Javascript文件编译成二进制文件
- 在Internet Explorer中从二进制文件打开PDF
- 闭包js框架-将ArrayBuffer转换为字符串
- 如何使用JavaScript粘贴原始二进制文件而不出现“无效字符”错误
- 如何计算与php中的CRC32函数兼容的arrayBuffer(javascript中的From FileReader)
- nodejs二进制websocket mimetype处理
- 如何从二进制int中获取百分比,每个位表示x%
- 需要帮助编写在不使用toString的情况下将十进制转换为二进制的代码
- 我不知道此代码中的这些符号是什么意思.十进制到二进制
- 使用Ajax的Phonegap发送图像的结果是[Object ArrayBuffer],而不是二进制
- Websocket二进制数据消息(ArrayBuffer)
- ArrayBuffer的疯狂——如何将二进制数据放入ArrayBuffer中
- AngularJS:把二进制数据从ArrayBuffer放到服务器
- 如何从ArrayBuffer中获取二进制字符串
- Javascript从ArrayBuffer到RAW二进制数据:如何
- 如何读取一个ArrayBuffer与二进制数据在“4字节”单/浮点/IEEE 754编码数据