Ошибка при использовании плагина передачи файлов - Ionic 3 - PullRequest
0 голосов
/ 09 февраля 2019

Я пытаюсь загрузить изображения на свой сервер, используя

"cordova-plugin-file-transfer": "^1.7.1",

"@ionic-native/file-transfer": "^5.0.0",

component.ts

takePicture() {
  const options: CameraOptions = {
    quality: 50,
    destinationType: this.camera.DestinationType.FILE_URI,
    encodingType: this.camera.EncodingType.JPEG,
    mediaType: this.camera.MediaType.PICTURE,
    sourceType: this.camera.PictureSourceType.PHOTOLIBRARY,
    targetWidth: 500,
    targetHeight: 500,
    saveToPhotoAlbum: false
  };

  this.camera.getPicture(options)
  .then((imageData) => this._img.uploadImage(imageData))
  .catch(err => console.log(err));
}

imageProvider.ts

import { FileTransfer, FileUploadOptions, FileTransferObject } from "@ionic-native/file-transfer/ngx";

   ...

uploadImage(img) {

  const url = `${this.apiURL}/images/upload`;

  // File for Upload
  var targetPath = img;

  var options: FileUploadOptions = {
    fileKey: 'image',
    chunkedMode: false,
    mimeType: 'multipart/form-data'
  };

  const fileTransfer: FileTransferObject = this.transfer.create();

  fileTransfer.upload(targetPath, url, options)
    .then(() => {
      console.log('good');
    }, (err) => {
      console.log('bad');
    })
}

Я получаю эту ошибку в logcat Android Studio:

"Ошибка типа: невозможно прочитать свойство 'конструктор' из неопределенного"

Я обнаружилчто код работает хорошо, пока не достигнет этой строки

const fileTransfer: FileTransferObject = this.transfer.create();

Ответы [ 2 ]

0 голосов
/ 09 февраля 2019

Вы используете неправильную версию собственного плагина, для Ionic 3, вы должны использовать версию 4.

ionic cordova plugin add cordova-plugin-file-transfer
npm install --save @ionic-native/file-transfer@4

А также, не append ngx в конце импорта.

import { FileTransfer, FileUploadOptions, FileTransferObject } from '@ionic-native/file-transfer';

Для справки в будущем. Если вы используете Ionic 3, следуйте документам Ionic v3 вместо последних.

V3 документы : https://ionicframework.com/docs/v3/native/file-transfer/

0 голосов
/ 09 февраля 2019

вы можете пропустить эту строку после импорта:

constructor(private transfer: FileTransfer, private file: File) { }

это, по крайней мере, то, что предлагает документация .

...