我正在创建一个新的应用程序 ionic, 我想把 pdf 文件发送到 Laravel API. 我正在尝试为ionic实现文件选择器, 但当我尝试上传文件时, 在FileChooser处显示错误的 "Object(...)is not a function". 但是当我尝试上传文件的时候,在FileChooser.open处显示了 "Object(...)is not a function "的错误. 我试了很多方法,但都没有用,这是我的fill.ts:"Object(...)is not a function"。
这是我的 fill.ts。
import {
Component
} from '@angular/core';
import {
IonicPage,
NavController,
NavParams
} from 'ionic-angular';
import {
ComplaintProvider
} from '../../providers/complaint/complaint';
import {
FileTransfer,
FileTransferObject,
FileUploadOptions
} from '@ionic-native/file-
transfer / ngx ';
import {
FileChooser
} from '@ionic-native/file-chooser/ngx';
import {
File
} from '@ionic-native/file/ngx';
import {
FilePath
} from '@ionic-native/file-path/ngx';
@IonicPage()
@Component({
selector: 'page-fill',
templateUrl: 'fill.html',
})
export class FillPage {
myRec = {
type: '',
project: '',
description: '',
}
myFile = {
file: ''
}
mood: any;
project: any;
uploadText: any;
downloadText: any;
fileTransfer: FileTransferObject;
constructor(public navCtrl: NavController, public navParams: NavParams, public complaint: ComplaintProvider, public transfer: FileTransfer, public file: File, public filePath: FilePath, public fileChooser: FileChooser) {
this.complaint.Type().then((data) => {
// console.log(JSON.stringify(data))
this.mood = data["type"];
})
this.complaint.Project().then((data) => {
// console.log(JSON.stringify(data))
this.project = data["projects"];
})
this.uploadText = "";
this.downloadText = "";
}
uploadFile() {
this.fileChooser.open().then((uri) => {
this.filePath.resolveNativePath(uri).then((nativepath) => {
this.fileTransfer = this.transfer.create();
let options: FileUploadOptions = {
fileKey: "pdf",
fileName: "file.pdf",
chunkedMode: false,
headers: {},
mimeType: 'pdf'
}
this.uploadText = "uploading .....";
this.fileTransfer.upload(nativepath, 'url', options).then((data) => {
alert("transfer done=" + JSON.stringify(data));
this.uploadText = "";
}, (err) => {
this.uploadText = ""
})
}, (err) => {
alert(JSON.stringify(err))
})
}, (err) => {
alert(JSON.stringify(err));
})
}
this app. modules. ts:
import {
NgModule,
ErrorHandler
} from '@angular/core';
import {
BrowserModule
} from '@angular/platform-browser';
import {
IonicApp,
IonicModule,
IonicErrorHandler
} from 'ionic-angular';
import {
MyApp
} from './app.component';
import {
IonicStorageModule
} from '@ionic/storage';
import {
AboutPage
} from '../pages/about/about';
import {
ContactPage
} from '../pages/contact/contact';
import {
HomePage
} from '../pages/home/home';
import {
TabsPage
} from '../pages/tabs/tabs';
import {
LoginPage
} from '../pages/login/login';
import {
FillPage
} from '../pages/fill/fill';
import {
AddPage
} from '../pages/add/add';
import {
AuthProvider
} from '../providers/auth/auth';
import {
StatusBar
} from '@ionic-native/status-bar';
import {
SplashScreen
} from '@ionic-native/splash-screen';
import {
HttpModule
} from '@angular/http';
import {
ComplaintProvider
} from '../providers/complaint/complaint';
import {
FileTransfer
} from '@ionic-native/file-transfer/ngx';
import {
FileChooser
} from '@ionic-native/file-chooser/ngx';
import {
File
} from '@ionic-native/file/ngx';
import {
FilePath
} from '@ionic-native/file-path/ngx';
@NgModule({
declarations: [
MyApp,
AboutPage,
ContactPage,
HomePage,
TabsPage,
LoginPage,
FillPage,
AddPage
],
imports: [
BrowserModule,
IonicModule.forRoot(MyApp),
IonicStorageModule.forRoot(),
HttpModule
],
bootstrap: [IonicApp],
entryComponents: [
MyApp,
AboutPage,
ContactPage,
HomePage,
TabsPage,
LoginPage,
FillPage,
AddPage
],
providers: [
StatusBar,
SplashScreen,
AuthProvider,
FileTransfer,
FileChooser,
File,
FilePath,
ComplaintProvider,
{
provide: ErrorHandler,
useClass: IonicErrorHandler
},
]
})
export class AppModule {}
你能不能试着把导入语句从以下地方修改一下?
import {FileChooser} from '@ionic-native/file-chooser/ngx';
到
import FileChooser from '@ionic-native/file-chooser/ngx';
我正面临着类似的问题与另一个离子插件. 它的一个野生的猜测.