HEX
Server: Apache/2.4.41 (Ubuntu)
System: Linux ip-172-31-42-149 5.15.0-1084-aws #91~20.04.1-Ubuntu SMP Fri May 2 07:00:04 UTC 2025 aarch64
User: ubuntu (1000)
PHP: 7.4.33
Disabled: pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wifcontinued,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_get_handler,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,pcntl_async_signals,pcntl_unshare,
Upload Files
File: /var/www/vhost/disk-apps/pwa.sports-crowd.com/src/app/services/photo.service.ts
import { Injectable } from '@angular/core';
import { ActionSheetController } from '@ionic/angular';

import { Camera, CameraResultType } from '@capacitor/camera';
import { TranslateService } from '@ngx-translate/core';
import { Capacitor } from '@capacitor/core';

@Injectable({
  providedIn: 'root'
})
export class PhotoService {
  constructor(public actionSheetCtrl: ActionSheetController, public translateService: TranslateService) { }

  async actionSheetImage(fileInput?) {
    return new Promise(async (resolve, reject) => {

      if (Capacitor.isNativePlatform()) {
        const permissions = await Camera.requestPermissions();
        if (permissions.photos === 'denied' || permissions.camera === 'denied') {
          return;
        }

        var options = {
          quality: 90,
          targetWidth: 600,
          targetHeight: 600,
          saveToPhotoAlbum: false,
          correctOrientation: true,
          cameraDirection: 1,
          resultType: CameraResultType.Base64,
          promptLabelHeader: this.translateService.instant('TITLE_ACTION_SHEET'),
          promptLabelPhoto: this.translateService.instant('TEXT2_ACTION_SHEET'),
          promptLabelPicture: this.translateService.instant('TEXT1_ACTION_SHEET')
        };

        var image = await Camera.getPhoto(options);
        resolve("data:image/" + image.format + ";base64," + image.base64String);
      } else {
        fileInput.click();

        fileInput.addEventListener("change", function (event) {
          const target = event.target as HTMLInputElement;
          if (target.files && target.files.length > 0) {
            const file = target.files[0];
            const reader = new FileReader();

            reader.onload = () => {
              let base64Image = reader.result as string;
              resolve(base64Image);
            };

            reader.readAsDataURL(file)
          }
        });
      }
    });
  }
}