Ваша основная задача - загрузить и отправить файл для обслуживания через API.Я просто собираюсь это сделать.
Вы можете использовать плагин: https://ionicframework.com/docs/native/camera/
что вы должны сделать?
добавить это в ваш файл module.ts
add
import { Camera, CameraOptions } from '@ionic-native/camera';
добавить камеру для добавления модуля Поставщики
providers: [
StatusBar,
Camera,
SplashScreen,
{provide: ErrorHandler, useClass: IonicErrorHandler}
]
в этом файле, с которым вы работаете, добавьте:
import { Camera, CameraOptions } from '@ionic-native/camera';
import {Observable} from 'rxjs/Observable';
конструктор
constructor(public navCtrl: NavController, private camera:Camera, public http:HttpClient) {
}
Функции:
Загрузить после захвата на камеру:
openCamera(){
const options: CameraOptions = {
quality:100,
destinationType:this.camera.DestinationType.DATA_URL,
encodingType: this.camera.EncodingType.JPEG,
mediaType:this.camera.MediaType.PICTURE
}
this.camera.getPicture(options).then((imageData)=>{
this.base64Image = 'data:image/jpeg;base64,'+imageData;
}
,(err)=>{
console.log(err);
})
}
Загрузить из галереи:
openGallery(){
const options: CameraOptions = {
quality:100,
destinationType:this.camera.DestinationType.DATA_URL,
encodingType: this.camera.EncodingType.JPEG,
mediaType:this.camera.MediaType.PICTURE,
sourceType:this.camera.PictureSourceType.PHOTOLIBRARY
}
this.camera.getPicture(options).then((imageData)=>{
this.base64Image = 'data:image/jpeg;base64,'+imageData;
}
,(err)=>{
console.log(err);
})
}
отправить в API:
uploadImage(){
let url = 'localhost:3000/upload';
let postData = new FormData();
postData.append('file', this.base64Image);
let data: Observable<any> = this.http.post(url, postData);
data.subscribe((result)=>{
console.log(result);
})
}