Angular ReactiveForms с плагином конденсаторной камеры не работает правильно - PullRequest
0 голосов
/ 26 апреля 2020

Привет, я надеюсь, что все в безопасности, у меня эта проблема уже несколько дней. Я пытаюсь обновить информацию о пользователе и работает, за исключением фотографии, но моя форма не хочет читать файл. Я использовал другое подключение к нему: cameraource и cameraresulttype, чтобы иметь возможность использовать камеру и в браузере, дело в том, что она отлично работает в Desktop, но когда дело доходит до реального устройства android, оно не работает, я пытаюсь чтобы сделать какое-нибудь console.log (this.form.get ('photo'). value и в консоли браузера, работает нормально, я могу видеть файл img или фотографию, но в android это дает мне ноль. Пожалуйста, помогите, спасибо, что это файлы: `


ngOnInit() {
  this.route.paramMap.subscribe(paramMap => {

    if (!paramMap.has('userinfoId')) {
      this.navCtrl.navigateBack('/tabs/tab/profile');

      return;
    }

    this.userinfoId = paramMap.get('userinfoId');

    this.isLoading = true;

    this.userinfoSub = this.userinfoService
      .getUserinfo(paramMap.get('userinfoId'))
      .subscribe(
        userInfo => {
          this.userinfo = userInfo;

          this.form = new FormGroup({
            name: new FormControl(this.userinfo.name, {
              updateOn: 'blur',
              validators: [Validators.required, Validators.maxLength(18)]
            }),

            photo: new FormControl(null)
            // {
            // updateOn: 'blur',
            // validators: [Validators.required]
            // })
          });

          this.isLoading = false;
        },
        error => {
          this.alertCtrl
            .create({
              header: 'An error occurred!',
              message: 'Info could not be fetched. Please try again later.',
              buttons: [
                {
                  text: 'Okay',
                  handler: () => {
                    this.router.navigate(['/tabs/tab/profile']);
                  }
                }
              ]
            })
            .then(alertEl => {
              alertEl.present();
            });
        }
      );
  });

  onUpdateUserInfo() {
    if (!this.form.valid) {
      return;
    }

    this.loadingCtrl
      .create({
        message: 'Updating...'
      })
      .then(loadingEl => {
        loadingEl.present();

        console.log(this.form.value.photo);

        console.log();

        console.log(this.form.get('photo').value);

        this.userinfoService
          .uploadImage(this.form.get('photo').value)
          .pipe(
            switchMap(uploadRes => {
              return this.userinfoService
                .updateUserInfo(
                  this.userinfo.id,
                  this.form.value.name,
                  uploadRes.imageUrl
                );
            })
          )
          .subscribe(() => {
            loadingEl.dismiss();
            this.form.reset();
            this.router.navigate(['/tabs/tab/profile']);
          });
      });
  }
}
...