html
<button onclick="getImg()">点击选取图片压缩上传</button>
js //点击事件,弹出选择摄像头和相册的选项
function getImg() {
var bts = [{
title: "拍照"
}, {
title: "从相册选择"
}];
plus.nativeUI.actionSheet({
cancel: "取消",
buttons: bts
},
function(e) {
if (e.index == 1) {
getImage();
} else if (e.index == 2) {
galleryImgs();
}
}
);
}
//调用手机摄像头并拍照
function getImage() {
var cmr = plus.camera.getCamera();
cmr.captureImage(function(p) {
// alert('拍照'+p)
plus.io.resolveLocalFileSystemURL(p, function(entry) {
compressImage(entry.toLocalURL(),entry.name);
}, function(e) {
plus.nativeUI.toast("读取拍照文件错误:" + e.message);
});
}, function(e) {
}, {
filter: 'image'
});
}
//从相册选择照片
function galleryImgs() {
plus.gallery.pick(function(e) {
// alert(e)
var name = e.substr(e.lastIndexOf('/') + 1);
compressImage(e,name);
}, function(e) {
}, {
filter: "image"
});
}
//压缩图片
function compressImage(url,filename){
var name="_doc/upload/"+filename;
plus.zip.compressImage({
src:url,//src: (String 类型 )压缩转换原始图片的路径
dst:name,//压缩转换目标图片的路径
quality:40,//quality: (Number 类型 )压缩图片的质量.取值范围为1-100
overwrite:true//overwrite: (Boolean 类型 )覆盖生成新文件
},
function(zip) {
console.log('图片压缩后路径'+zip.target)
createUpload(zip.target)
},function(error) {
plus.nativeUI.toast("压缩图片失败,请稍候再试");
});
}
//上传图片
function createUpload(url){
//服务器地址
var server="图片服务器地址";
var wt=plus.nativeUI.showWaiting();
var task=plus.uploader.createUpload(server,
{method:"POST"},
function(t,status){
//上传完成
if(status==200){
wt.close();
//服务端返回的结果
var result = JSON.parse(t.responseText);
console.log("上传成功返回结果:"+result)
}else{
console.log("上传失败:"+status);
wt.close();
}
}
);
//将文件添加到上传队列中
task.addFile(url,{key:'file'});
task.start();
}
//服务器地址
var server="图片服务器地址";
var wt=plus.nativeUI.showWaiting();
var task=plus.uploader.createUpload(server,
{method:"POST"},
function(t,status){
//上传完成
if(status==200){
wt.close();
//服务端返回的结果
var result = JSON.parse(t.responseText);
console.log("上传成功返回结果:"+result)
}else{
console.log("上传失败:"+status);
wt.close();
}
}
);
//将文件添加到上传队列中
task.addFile(url,{key:'file'});
task.start();
}