2017-11-22 2 views
0

Ich versuche, Datei-Upload von meiner Ionic-Anwendung zu Knoten js-Server basierend auf koa.js. Für die Analyse des Körpers bin ich mit Koa-Körper und formidable.Hochladen von Datei auf koa-js Server mit formidable

this.app.use(formidable()); 

this.app.use(koaBody({ 
    formidable:{ 
     uploadDir: __dirname + '/uploads', // directory where files will be uploaded 
     keepExtensions: true, // keep file extension on upload 
     multiples: true 
    }, 
    multipart: true, 
    urlencoded: true, 
    formLimit: '5mb', 
})); 

this.app.use(_.post('/wish/photo/upload', async (ctx, next) => { 
     //ctx.body = JSON.stringify(ctx.request); 
     next(); 
    })); 

und dies ist meine Datei-Upload-Funktion auf dem Frontend:

Hier mein Server ist

uploadFromPc(files, parameters){ 
    let headers = new Headers(); 
    let formData = new FormData(); 
    Array.from(files).forEach(file => formData.append('photo', file)); 
    let options = new RequestOptions({ headers: headers }); 
    //options.params = parameters; 
    return this.http.post(EnvVariables.apiEndpoint + 'wish/photo/upload', formData, options) 
      .subscribe(response => console.log(response)) 
} 

Alles geht, wie es sollte, aber die Datei wird nicht erstellt, ist kein Fehler gezeigt, nichts.

Irgendwelche Ideen?

Antwort

0

Nach einer Weile konnte ich das Datei-Upload-Problem beheben. Ich musste nach der Einstellung der Herkunft eine gewaltige Middleware bewegen. Außerdem musste ich die KoaBody-Funktion auf die Post-Aktion

router.post('/wish/photo/upload', koaBody({ 
    formidable: { 
     uploadDir: __dirname + '/uploads', // directory where files will be uploaded 
     keepExtensions: true, // keep file extension on upload 
     multiples: true, 
    }, 
    multipart: true, 
    urlencoded: true, 
    formLimit: '5mb', 
}), (ctx, next) => { 
    ctx.body = "Success"; 
}); 
verschieben
Verwandte Themen