Я могу отправить изображение на сервер с помощью этой функции, но пока не знаю, как отправить массив этих изображений, я снимаю изображения с помощью плагина cordova.
getPicture(){
const options: CameraOptions = {
quality: 100,
destinationType: this.camera.DestinationType.DATA_URL,
encodingType: this.camera.EncodingType.JPEG,
sourceType: this.camera.PictureSourceType.CAMERA,
saveToPhotoAlbum: true
}
this.camera.getPicture(options).then((imageData) => {
// imageData is either a base64 encoded string or a file URI
// If it's base64 (DATA_URL):
this.cameraData = imageData;
this.base64Image = "data:image/jpeg;base64," + imageData;
this.photos.push(this.base64Image);
this.photos.reverse();
}, (err) => {
// Handle error
});
}
и я отправляю на сервер с этим
onSubmit() {
let loading = this.loadingCtrl.create({
content: 'Carregando...',
});
loading.present();
let url = "backend_cliente/api/api_upload_image.php";
let postData = new FormData();
postData.append('id', this.id);
postData.append('file', this.base64Image);
let data: Observable<any> = this.http.post(url, postData);
data.subscribe((result) => {
loading.dismissAll();
alert(result);
}, error1 => {
loading.dismissAll();
let mensagem = "Upload success";
this.presentAlert(mensagem);
});
}
Я пробовал это несколько раз, но не смог найти способ отправить массив этих изображений, потому что функция, которую я использую, не отправляет массив строк.
и для получения посылки с этим бэкэндом.
$data = ['result' => false];
$id = isset($_POST['id'])? $_POST['id'] : '';
$path = 'uploads/user-id-'.$id;
if(!file_exists($path )){
mkdir("$path ", 0700);
}
$target_path = $path .'/'.$id.'.jpg';
$return = '';
if (isset($_POST['file'])) {
$imageData = $_POST['file'];
$imageData = str_replace('data:image/jpeg;base64,', '',$imageData);
$imageData = str_replace('data:image/jpg;base64,', '',$imageData);
$imageData = str_replace(' ', '+', $imageData);
$imageData = base64_decode($imageData);
file_put_contents($target_path, $imageData);
}
header("Access-Control-Allow-Origin: *");
header("Content-Type: application/json");
Если есть лучшие функции для отправки массива, пожалуйста, скажите мне