var fileArr = [],fileSrcLength,imgUpLength=0,imgsLength=0;
mui.init({
swipeBack: true //启用右滑关闭功能
});
document.getElementById('headImage').addEventListener('tap', function() {
if (mui.os.plus) {
var buttonTit = [{
title: "拍照"
}, {
title: "从手机相册选择"
}];
plus.nativeUI.actionSheet({
title: "上传图片",
cancel: "取消",
buttons: buttonTit
}, function(b) { /*actionSheet 按钮点击事件*/
switch (b.index) {
case 0:
break;
case 1:
getImage(); /*拍照*/
break;
case 2:
galleryImg(); /*打开相册*/
break;
default:
break;
}
})
} else if (typeof window !== 'undefined' && window.File && window.FileReader && window.FileList && window.Blob) {
var input = document.createElement('input');
input.type = 'file';
input.accept = 'image/*';
input.multiple = true; // 允许选择多张图片
input.capture = 'camera';
input.onchange = function(e) {
var files = e.target.files;
if (files.length > 0) {
var promises = [];
for (var i = 0; i < files.length; i++) {
var file = files[i];
var reader = new FileReader();
var promise = new Promise(function(resolve, reject) {
reader.onload = function(e) {
var base64 = e.target.result;
resolve({
base64
});
};
reader.onerror = function(e) {
reject(e);
};
reader.readAsDataURL(file);
});
promises.push(promise);
}
Promise.all(promises).then(function(res) {
for (var info of res) {
if (info.base64) {
setHtml(info.base64, info.base64);
fileArr.push(info.base64);
}
}
upFile();
}).catch(function(error) {
console.error('读取文件失败:', error);
});
}
};
input.click();
}
}, false);
// 拍照获取图片
function getImage() {
var c = plus.camera.getCamera();
fileArr = [];
imgUpLength = 0;
c.captureImage(function(e) {
plus.io.resolveLocalFileSystemURL(e, function(entry) {
plus.nativeUI.showWaiting()
var imgSrc = entry.toLocalURL() + "?version=" + new Date().getTime(); //拿到图片路径
imgUpLength++;
appendFile(imgSrc);
}, function(e) {
console.log("读取拍照文件错误:" + e.message);
});
}, function(s) {
console.log("error" + s.message);
}, {
filename: "_doc/camera/"
})
}
// 从相册中选择图片
function galleryImg() {
// 从相册中选择图片
fileArr = [];
imgUpLength = 0;
plus.gallery.pick(function(e) {
for (var i in e.files) {
var fileSrc = e.files[i];
fileSrcLength = e.files.length;
imgUpLength++;
appendFile(fileSrc);
}
plus.nativeUI.showWaiting();
}, function(e) {
console.log("取消选择图片");
}, {
filter: "image",
multiple: true,
//maximum: 5,
system: false,
onmaxed: function() {
plus.nativeUI.alert('最多只能选择5张图片');
}
});
}
function setHtml(path, fl) {
var str = '';
str = '
' +
'

' +
'
' +
'
';
$("#imgs").append(str);
}
$("#imgs").on("tap", ".deleteBtn", function() {
var btnArray = ['取消', '确定'];
var index=$(this).parent().parent();
mui.confirm('确认删除', '提示', btnArray, function(e) {
if(e.index == 1) {
index.remove();
imgsLength--;
} else {
plus.nativeUI.toast('取消');
}
})
})
function upFile() {
console.log(fileArr, 'fileArr')
mui.ajax(huayi.config.callcenter_url + '/ApplicationsVersion/UploadBase64', {
data: {
"dataurl": fileArr
},
dataType: 'json', //服务器返回json格式数据
type: 'post', //HTTP请求类型
timeout: 300000, //超时时间设置为30秒
success: function(data) {
if (data.state == "success") {
console.log(1)
for (var i in data.acs) {
$("#imgs li").eq(Number(imgsLength)).attr("imgId", data.acs[i].F_Id)
imgsLength++;
}
mui.toast("图片上传成功");
// plus.nativeUI.closeWaiting();
} else {
mui.alert("上传失败");
//plus.nativeUI.closeWaiting();
}
},
error: function(xhr, type, errorThrown) {
mui.alert(errorThrown);
// plus.nativeUI.closeWaiting();
}
});
}
// 添加文件
var f1 = null;
function appendFile(path) {
//fileArr=[]
var bitmap = new plus.nativeObj.Bitmap("test");
// 从本地加载Bitmap图片
bitmap.load(path,function(){
var base64 = bitmap.toBase64Data()
var img = new Image();
img .crossOrigin = "Anonymous";
img.src = path; // 传过来的图片路径在这里用。
img.onload = function() {
var that = this;
//生成比例
var w = that.width,
h = that.height,
scale = w / h;
w = 480 || w; //480 你想压缩到多大,改这里
h = w / scale;
//生成canvas
var canvas = document.createElement('canvas');
var ctx = canvas.getContext('2d');
$(canvas).attr({
width: w,
height: h
});
ctx.drawImage(that, 0, 0, w, h);
var base64 = canvas.toDataURL('image/jpeg', 1 || 0.8); //1最清晰,越低越模糊。有一点不清楚这里明明设置的是jpeg。弹出 base64 开头的一段 data:image/png;却是png。哎开心就好,开心就好
f1 = base64; // 把base64数据丢过去,上传要用。
setHtml(path, f1);
fileArr.push(f1);
if (imgUpLength == fileArr.length) {
upFile()
}
}
},function(e){
console.log('加载图片失败:'+JSON.stringify(e));
});
}
// function appendFile(path) {
// var img = new Image();
// img.src = path; // 传过来的图片路径在这里用。
// img.onload = function() {
// var that = this;
// //生成比例
// var w = that.width,
// h = that.height,
// scale = w / h;
// w = 480 || w; //480 你想压缩到多大,改这里
// h = w / scale;
// //生成canvas
// var canvas = document.createElement('canvas');
// var ctx = canvas.getContext('2d');
// $(canvas).attr({
// width: w,
// height: h
// });
// ctx.drawImage(that, 0, 0, w, h);
// var base64 = canvas.toDataURL('image/jpeg', 1 || 0.8); //1最清晰,越低越模糊。有一点不清楚这里明明设置的是jpeg。弹出 base64 开头的一段 data:image/png;却是png。哎开心就好,开心就好
// f1 = base64; // 把base64数据丢过去,上传要用。
// setHtml(path, f1)
// fileArr.push(f1);
// if(imgUpLength==fileArr.length){
// upFile()
// }
// }
// }