首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用文件传输插件时的错误- Ionic 3

使用文件传输插件时的错误- Ionic 3
EN

Stack Overflow用户
提问于 2019-02-09 03:26:50
回答 2查看 2.7K关注 0票数 3

我正在尝试将图像上传到我的服务器

代码语言:javascript
复制
"cordova-plugin-file-transfer": "^1.7.1",

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

component.ts

代码语言:javascript
复制
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

代码语言:javascript
复制
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');
    })
}

我在中得到了这个错误:

"TypeError:无法读取未定义的属性‘构造函数’“

我发现代码在到达这一行之前运行良好。

代码语言:javascript
复制
const fileTransfer: FileTransferObject = this.transfer.create();
EN

回答 2

Stack Overflow用户

发布于 2019-02-09 06:24:32

您使用错误的本机插件版本,对于Ionic 3,您应该使用版本4。

代码语言:javascript
复制
ionic cordova plugin add cordova-plugin-file-transfer
npm install --save @ionic-native/file-transfer@4

而且,不将ngx追加到导入的末尾。

代码语言:javascript
复制
import { FileTransfer, FileUploadOptions, FileTransferObject } from '@ionic-native/file-transfer';

为了您将来的参考,如果您正在使用Ionic 3,请遵循Ionic v3文档而不是最新的文档。

V3 docs:https://ionicframework.com/docs/v3/native/file-transfer/

票数 8
EN

Stack Overflow用户

发布于 2019-02-09 03:36:00

您可能在导入之后遗漏了这一行:

代码语言:javascript
复制
constructor(private transfer: FileTransfer, private file: File) { }

这至少是文档的建议。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/54602860

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档