Возникли проблемы с $ngfDataUrl с угловой загрузкой ng-file-upload

Я пытаюсь выяснить, как загружать изображения на сервер, сервер ожидает, чтобы кандидат.details.avatar представлял собой строку, которая выглядит следующим образом:

"Данные: изображение / JPEG;base64,/9J /4AAQSkZ........."

который предположительно является свойством $ngfDataUrl в загруженном файле и все же:

controller.js (с использованием кандидата ctrlAs)

const avatar = require('../../static/img/avatar.png');

require('ng-tags-input');

module.exports = [
  'regexProvider',
  '$location',
  '$routeParams',
  'DataModel',
  function(regexProvider, $location, $routeParams, DataModel) {
    let routeData = {
      collection: 'candidates'
    };
    let promise;

    this.defaultAvatar = avatar;
    this.regex = regexProvider;
    this.details = {};

    if($routeParams.id !== 'new') {
      this.heading = 'Update Candidate';
      routeData.id = $routeParams.id;
      this.details = DataModel.get(routeData);
    } else {
      this.heading = 'Add Candidate';
    }

    this.save = () => {
      console.log('aldfja');
      if($routeParams.id !== 'new') {
        promise = DataModel.update(routeData, this.details).$promise;
        console.log(this.details);
      } else {
        promise = DataModel.save(routeData, this.details).$promise;
      }

      promise.then((data) => {
        $location.path('/details/' + data.id);
      }, () => {
        $location.path('/not-found');
      });
      return promise;
    };

    this.uploadImage = (files) => {
      if(files && files.length) {
        this.details.avatarImage = files[0];
        console.log('49', files[0]);
        this.details.avatar = files[0].$ngfDataUrl;
        console.log('51', this.details.avatar);
      }
    };

  }];

Прямо сейчас, когда я загружаю изображение, в миниатюре загружается несрезанное изображение. Я выхожу из файла [0] в строке 49, и у него есть свойство $ngfDataUrl, и все же, когда я делаю это.details.avatar = files[0].$ NgfDataUrl, это не работает, так как файлы [0]. $ NgfDataUrl не определены? Как это происходит

HTML

<h1>{{ ::candidate.heading }}</h1>

<form name="candidateForm" ng-submit="candidateForm.$valid && candidate.save()" novalidate>
  <div class="candidate-form">
    <div class="left">
      <div 
        class="avatar avatar-upload"
        ngf-select="candidate.uploadImage($files)" 
        multiple="multiple">
        <img 
          ngf-thumbnail="candidate.details.avatarImage || candidate.defaultAvatar"
          ngf-drop="uploadFiles($files)"
          ngf-drag-over-class="'dragover'"
          ngf-multiple="true" 
          ngf-pattern="'image'"
          ngf-no-object-url="true" />
        <span>Click to {{(candidate.details.avatar ? 'change' : 'upload')}}</span>
      </div>
    </div>

    <div class="right">
      <div layout layout-sm="column">

        <md-input-container flex>
          <label>First name *</label>
          <input name="firstName" ng-required="true" ng-model="candidate.details.firstName">

          <div ng-messages="candidateForm.firstName.$error" ng-if="candidateForm.$submitted || candidateForm.firstName.$touched">
            <div ng-message="required">First name is required.</div>
          </div>

        </md-input-container>

        <md-input-container flex>
          <label>Last name *</label>
          <input name="lastName" ng-required="true" ng-model="candidate.details.lastName">

          <div ng-messages="candidateForm.lastName.$error" ng-if="candidateForm.$submitted || candidateForm.lastName.$touched">
            <div ng-message="required">Last name is required.</div>
          </div>

        </md-input-container>

      </div>

      <div layout layout-sm="column">

        <md-input-container flex md-is-error="candidateForm.email.$invalid && (candidateForm.$submitted || candidateForm.email.$dirty)">

          <label>Email *</label>
          <input name="email" ng-required="true" ng-model="candidate.details.email" ng-pattern="candidate.regex.EMAILREGEX">

          <div ng-messages="candidateForm.email.$error" ng-if="candidateForm.$submitted || candidateForm.email.$touched">
            <div ng-message="required">Email is required.</div>
          </div>

        </md-input-container>


        <md-input-container flex md-is-error="candidateForm.phone.$invalid && (candidateForm.$submitted || candidateForm.phone.$dirty)">

          <label>Phone number *</label>
          <input name="phone" ng-required="true" ng-model="candidate.details.phone" ng-pattern="candidate.regex.PHONEREGEX">

          <div ng-messages="candidateForm.phone.$error" ng-if="candidateForm.$submitted || candidateForm.phone.$touched">
            <div ng-message="required">Phone number is required.</div>
          </div>

        </md-input-container>

        <div flex>
          <skills name="skills" tags="candidate.details.skills"></skills>
        </div>
      </div>

      <md-input-container class="md-block">

        <label>Summary About Candidate *</label>
        <textarea name="summary" ng-required="true" ng-model="candidate.details.summary" columns="1" md-maxlength="100" rows="3"></textarea>

        <div ng-messages="candidateForm.summary.$error" ng-if="candidateForm.$submitted || candidateForm.summary.$touched">
          <div ng-message="required">Summary is required.</div>
        </div>
      </md-input-container>

      <div class="text-right">

        <md-button type="submit" ng-disabled="candidateForm.$invalid" class="md-raised md-primary" aria-label="Add candidate">
          {{ ::candidate.heading }}
        </md-button>

      </div>

    </div>
  </div>

</form>

0 ответов

Другие вопросы по тегам