2017-07-12 17 views
0

Ich versuche, Dateien über UIKIT Uploader und NodeJS hochzuladen. Das Problem ist, dass ich die Datei in der POST-Anfrage nicht abrufen kann.UIKIT Upload - Serverseite NodeJS

upload.controller.js

UIkit.upload('.test-upload', { 

     url: '/upload', 
     multiple: true 
     ... 
}) 

app.post('/upload', function (req, res, next) { 
    // How can I get the file here?? 
}); 
+0

Von dem [docs] (https://getuikit.com/docs/upload#component-options), kann ich sehen, dass es ein param "Dateien []", aber immer noch nicht wissen, genannt ist, wie es bekommen. – nash

Antwort

1

app.js müssen Sie auf eine multipart/form Middleware auf Ihre Express App wie multer. Express unterstützt das Hochladen von Dateien nicht, sodass Sie Ihrer Middleware, normalerweise auf der Route und nicht der gesamten Serverinstanz, Multer hinzufügen müssen.

Multer kann Einzel- oder Multifile-Uploads verarbeiten und sowohl Formulardaten als auch Meta-Informationen zu den Uploads verarbeiten. Sie können mehr über die verschiedenen Einstellungen und Speichereinstellungen in den Dokumenten lesen.

const express = require('express') 
const multer = require('multer') 
const port = process.env.PORT || 1337 
const server = express() 
const upload = multer({dest: 'temp/' }) 

// process the array of "files" 
server.post('/upload', upload.array('files'), (req, res) => { 
    // work with files 
    console.log(req.files) // array of files 

    // request body will be processed by multer as well 
    console.log(req.body) 
}) 

server.listen(port,() => { console.log(`Listening on ${port}`) }) 
+0

Danke, es hat geklappt !!! :) Nur eine kleine Sache ... Ich musste den Parameter "name" umbenennen zu: 'upload.array ('files []')' (standardmäßig von UIkit). – nash