ionic中调用cordova插件upload上传的问题,拍照and调用相册

  第一次写博客直接怼代码

首先应该

ionic cordova plugin add cordova-plugin-file-transfer
npm install --save @ionic-native/file-transfer

 

添加对象ImagePickerOptions 和 CameraOptions  是因为可以直接的看到错误提示

import { ImagePicker, ImagePickerOptions } from '@ionic-native/image-picker';
import { Camera, CameraOptions } from '@ionic-native/camera';
 
 
// 拍照
public takePhoto() {
let imgData = '';
let base64ImgData = '';
let options: CameraOptions = {
quality: 100, //相片质量0-100
destinationType: 0, //返回类型:DATA_URL= 0,返回作为 base64 編碼字串。 FILE_URI=1,返回影像档的 URI。NATIVE_URI=2,返回图像本机URI (例如,資產庫)
sourceType: this. camera. PictureSourceType. CAMERA, //从哪里选择图片:PHOTOLIBRARY=0,相机拍照=1,SAVEDPHOTOALBUM=2。0和1其实都是本地图库
allowEdit: false, //在选择之前允许修改截图
encodingType: this. camera. EncodingType. JPEG, //保存的图片格式: JPEG = 0, PNG = 1
targetWidth: 200, //照片宽度
targetHeight: 200, //照片高度
mediaType: 0, //可选媒体类型:圖片=0,只允许选择图片將返回指定DestinationType的参数。 視頻格式=1,允许选择视频,最终返回 FILE_URI。ALLMEDIA= 2,允许所有媒体类型的选择。
cameraDirection: 0, //枪后摄像头类型:Back= 0,Front-facing = 1
saveToPhotoAlbum: true //保存进手机相册
};
this. camera. getPicture( options). then(( imageData) => {
this. upload( imageData);
imgData = "data:image/jpeg;base64," + imageData; //“data:image/jpg;base64,iVBORw0KGgoAAAANSUhE……” 就是一张图片的Data URL
}, ( err) => {
//输出你的错误信息
});
}
 
 
// 选取头像
public checkImg() {
let imgData = '';
let options: ImagePickerOptions = {
quality: 100,
maximumImagesCount: 1,
outputType: 1 //0 是文件路径 1 是base64
};
this. imagePicker. getPictures( options). then(( results) => {
for( let i = 0; i < results. length; i++) {
this. upload( results[ i]);
imgData = "data:image/jpeg;base64," + results[ i];//
}
},( err) => {
//输出你的错误提示
});
}
 
   //上传头像
  public upload( fileURL) {
    let options: FileUploadOptions = {
    fileKey: 'file',
    fileName: fileURL. substr( fileURL. lastIndexOf( '/') + 1),
    mimeType: 'image/jpeg',
    httpMethod: 'POST'//请求方式 put或post
  }
  let params = {
    'key' : 'value',
    '参数': '传给后台的数据'
};
options. params = params;
let tempFileUrl = fileURL;
let tempServe = '你的后台服务接口';
this. fileTransfer. upload( fileURL, encodeURI( tempServe), options)// fileURL 本地文件路径
. then(( data) => {
let resuleData = JSON. parse( data. response);// data. response这里可以获取请求后台返回的数据
this. headImg = this. domSanitizer. bypassSecurityTrustUrl( resuleData. pam);//不会去angular 查
},( err) => {
this. globalFunction. showAlert( '上传失败');
});
}
 
  cordova 官网地址 第一次写不是很有经验,如果看不得不是很清楚,可以去官网查看
  http://cordova.apache.org/docs/en/latest/reference/cordova-plugin-file-transfer/index.html#backwards-compatibility-notes
 
  下面是上传请求成功后通过以下数据获得你需要的数据,
 

 

 

转载于:https://www.cnblogs.com/ChineseLiao/p/7306006.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值