|
http://bbs.wex5.com/forum.php?mod=viewthread&tid=96220&highlight=base64 参考上面的例子,可以保存保存图片Basr64编码后,怎样打开它?
Model.prototype.photoTakeClick = function(event) {
if (!navigator.camera) {
return;
}
var self = this;
navigator.camera.getPicture(onLoadImageSuccess, onLoadImageFail, {
destinationType : navigator.camera.DestinationType.DATA_URL,
allowEdit : true,
// quality:30,
// targetWidth:100,
// targetHeight:100,
saveToPhotoAlbum : true
});
// 拍照成功后回调
function onLoadImageSuccess(imageData) {
// 图片上传
self.saveDataTofilesystem("yaoming.jpg", imageData);
}
function onLoadImageFail(error) {
alert(error);
}
};
Model.prototype.saveDataTofilesystem = function(fileurl, Base64code) {
var self = this;
window.requestFileSystem = window.requestFileSystem || window.webkitRequestFileSystem;
window.requestFileSystem(window.PERSISTENT, 0, function(fs) {
fs.root.getFile(fileurl, {
create : true
}, function(fileEntry) {
fileEntry.createWriter(function(fileWriter) {
var data = self.convertBase64UrlToBlob(Base64code);
fileWriter.write(data);
self.file = fileEntry.toURL();
}, function(err) {
alert("错误码 :" + err.code);
});
}, function(err) {
alert("错误码 :" + err.code);
});
}, self.errorHandler);
}
Model.prototype.convertBase64UrlToBlob = function(Base64code) {
var bytes = window.atob(base64code.split(',')[1]);
// //去掉url的头,并转换为byte
// var bytes = window.atob(Base64code);
// 处理异常,将ascii码小于0的转换为大于0
var ab = new ArrayBuffer(bytes.length);
var ia = new Uint8Array(ab);
for (var i = 0; i < bytes.length; i++) {
ia = bytes.charCodeAt(i);
}
return new Blob([ ab ], {
type : 'image/jpg'
});
}
上面代码可以保存(运行无错误出现),以下不能打开
Model.prototype.button1Click = function(event) {
var s = this.file; // 返回 file///....格式路径
alert(s);
open(localUrl, success, error);
if (justep.Browser.isX5App && justep.Browser.isAndroid) {
window.open(s, "_system");
} else {
window.open(s, '_blank', 'toolbarposition=top,location=no,enableViewportScale=yes');
}
}
请问那里错了??????
|
|