打开控制台安装camera和file、file-transfer插件
ionic cordova plugin add cordova-plugin-camera
npm install --save @ionic-native/camera
ionic cordova plugin add cordova-plugin-file
npm install --save @ionic-native/file
ionic cordova plugin add cordova-plugin-file-transfer
npm install --save @ionic-native/file-transfer
app.module.ts引入
import { Camera } from '@ionic-native/camera';
import { File } from '@ionic-native/file';
import { FileTransfer } from '@ionic-native/file-transfer';
providers: [ Camera, File,FileTransfer ]
real-name.ts引入
import {Camera, CameraOptions} from '@ionic-native/camera';
import {FileTransfer, FileUploadOptions, FileTransferObject} from '@ionic-native/file-transfer';
import {File} from '@ionic-native/file';
path : any;
idGHImg : any;
constructor( private camera: Camera, private transfer: FileTransfer, private file: File) { }
打开手机照相机
openCamera() {
const options: CameraOptions = {
quality: 50, //相片质量 0 -100
destinationType: this.camera.DestinationType.DATA_URL, //DATA_URL 是 base64 FILE_URL 是文件路径
encodingType: this.camera.EncodingType.JPEG,
mediaType: this.camera.MediaType.PICTURE,
saveToPhotoAlbum: true, //是否保存到相册
sourceType: this.camera.PictureSourceType.CAMERA, //是打开相机拍照还是打开相册选择 PHOTOLIBRARY : 相册选择, CAMERA : 拍照,
targetWidth: 1080, //照片大小
targetHeight: 1080
}
this.camera.getPicture(options).then((imageData) => {
//console.log("got file: " + imageData);
// If it's base64:
let base64Image = 'data:image/jpeg;base64,' + imageData;
console.log('base64Image=' + base64Image);
this.path = base64Image;
this.upload();
}, (err) => {
// Handle error
});
}
上传照片
upload() {
const apiPath = Utils.getApiAddress() + "/userAuth/ocr";
const fileTransfer: FileTransferObject = this.transfer.create();
let params= {
"file": this.path,
}
this.appService.loading('努力上传中..');
this.http.post(apiPath, params, Utils.getPostRequestOptions() )
.subscribe((res: Response) => {
let data = JSON.parse(res['_body']);
if(data.code==0&&data.data!=null){
this.idGHImg = data.data.filePath; //获取图片
}
this.appService.toast('图片上传成功');
}
else{
this.appService.toast(data.msg);
return;
}
}, (err) => {
this.appService.toast(err);
});
}