在上一篇博客本地相册、拍照、裁剪、上传(单图完全版) 中,跟大家分享了ionic项目选择本地图片、拍照、裁剪、上传到服务器的内容,但是上一节的内容由于使用了Cordova的Camera插件进行了图片选择与拍摄,所以每次只能支持1张图片的选择与上传。上一篇博客中的内容适合用于头像情景。
在本节中,跟大家分享使用Corodva的ImagePicker插件,实现多图选择与上传。废话不多说,进入主题。
插件安装
定义图片选择服务
图片选择
.factory('SelectPicture',function(UploadFile,Toast) {
return {
/**
* 从图库选择多张图片
*/
choosePictures: function() {
window.imagePicker.getPictures(function(res){
for(var i = 0; i < res.length; i++){
UploadFile.uploadFile(res[i],"我的服务器接口地址");//传递自己的服务器接口地址
}
},function(err){
alert(err);
},{
maximumImagesCount: 10,quality: 80
});
}
}
})
文件上传
.factory('UploadFile',function(Toast) {
return {
/**
* 上传文件到服务器
*
* @param fileUrl 文件路径
* @param server 服务器接口
*/
uploadFile: function(fileUrl,server) {
document.addEventListener("deviceready",onDeviceReady,false);
function onDeviceReady() {
var options = new FileUploadOptions();
options.fileKey = "BeanYon";//后台获取文件的键值
options.fileName = fileUrl.substr(fileUrl.lastIndexOf('/') + 1);
options.mimeType = "image/jpeg";
options.chunkedMode = false;
var params = {};//这里可添加自定义参数
options.params = params;
var ft = new FileTransfer();
ft.upload(fileUrl,encodeURI(server),success,err,options);
}
function success(r){
Toast.show("图片已经成功上传");
}
function err(error){
Toast.show("上传头像失败,请确保网络正常后再试");
}
}
}
})
在Controller中调用
图片并上传
*/
$scope.uploadImage = function(){
SelectPicture.choosePictures($scope);
}
})