插件 cordova-plugin-camera
// 上传文件
$scope.postUploadFile = function () {
$ionicActionSheet.show({
buttons: [
{
text: '相机'
},
{
text: '图库'
}
],
cancelText: '关闭',
cancel: function () {
return true;
},
buttonClicked: function (index) {
switch (index) {
case 0:
$scope.pickImage(1); // 相机
break;
case 1:
$scope.pickImage(0); // 相册
break;
default:
break;
}
return true;
}
});
}
// 调用 相机 相册
$scope.pickImage = function (type) {
var options = {
//这些参数可能要配合着使用,比如选择了sourcetype是0,destinationtype要相应的设置
quality: 100, //相片质量0-100
destinationType: 0, //返回类型:DATA_URL= 0,返回作为 base64 編碼字串。 FILE_URI=1,返回影像档的 URI。NATIVE_URI=2,返回图像本机URI (例如,資產庫)
sourceType: 0, //从哪里选择图片:PHOTOLIBRARY=0,相机拍照=1,SAVEDPHOTOALBUM=2。0和1其实都是本地图库
allowEdit: false, //在选择之前允许修改截图
encodingType: 0, //保存的图片格式: JPEG = 0, PNG = 1
targetWidth: 800, //照片宽度
targetHeight: 800, //照片高度
mediaType: 2, //可选媒体类型:圖片=0,只允许选择图片將返回指定DestinationType的参数。 視頻格式=1,允许选择视频,最终返回 FILE_URI。ALLMEDIA= 2,允许所有媒体类型的选择。
cameraDirection: 0, //枪后摄像头类型:Back= 0,Front-facing = 1
popoverOptions: CameraPopoverOptions,
saveToPhotoAlbum: true //保存进手机相册
};
$cordovaCamera.getPicture(options).then(function (data) {
$scope.uploadFile(data); //图片上传
}, function (err) {
// console.log(err);
});
};
//图片上传
$scope.isUpLoad = false;
$scope.Jh2Host = Jh2Host;
$scope.uploadFile = function (data) {
var fileUrl = data.split("/0/").pop();
var filename = data.split("/").pop();
var targetPath = cordova.file.externalRootDirectory + fileUrl; //APP下载存放的路径,可以使用cordova file插件进行相关配置
console.log(targetPath);
$scope.upInfo = '准备上传';
$scope.isUpLoad = true;
$scope.buttonFlag = true;
var url = encodeURI(Jh2Host + "/Admin/postUploadFile");
var trustHosts = true;
var options = {
fileName: filename,
};
$cordovaFileTransfer.upload(url, targetPath, options, trustHosts).then(function (result) {
console.log(result);
var res = JSON.parse(result.response);
if (!res.IsErr) {
$scope.uploadFileName = res.Data;
$scope.upInfo = '上传成功';
$scope.buttonFlag = false;
$timeout(function () {
$scope.isUpLoad = false;
}, 1500)
} else {
$cordovaToast.showShortBottom('上传失败');
}
}, function (err) {
console.log(err);
// $ionicLoading.hide();
}, function (progress) {
var downloadProgress = (progress.loaded / progress.total) * 100;
$scope.upInfo = '已上传' + Math.floor(downloadProgress) + '%';
});
};