如何使用nodejs / express来上传和读取文件

有各种各样的post,但我仍然没有得到它。 我想上传* .csv并阅读并处理其内容。

我的玉文件就是这个

//views/import.jade extends layout block content h1= title form(action="/import", method="post", enctype="multipart/form-data") input(type="file", name="ufile") input(type="submit", name="Upload") 

我改变了代码,但是req.files是未定义的

 //routes/index.js /* import page. */ router.get('/blah', function(req, res, next) { res.render('import', { title: 'Import Data' }); }); router.post('/import', function(req, res) { console.log(req.files); }); module.exports = router; 

下面的教程让我非常接近我需要的地方。

注:在表格中,应该是:

 action="/uploads/upload" 

我终于可以上传和阅读* .csv文件。

http://blog.e-zest.com/how-to-handle-file-upload-with-node-and-express-4-0/

这是阅读表格数据的秘诀之一:

https://github.com/expressjs/multer

我希望这可能对像我一样陷入困境的其他人有用(3天!)。

希望这能解决你的问题,这是我多次上传文件的方法:

Nodejs:

 router.post('/upload', function(req , res) { var multiparty = require('multiparty'); var form = new multiparty.Form(); var fs = require('fs'); form.parse(req, function(err, fields, files) { var imgArray = files.imatges; for (var i = 0; i < imgArray.length; i++) { var newPath = './public/uploads/'+fields.imgName+'/'; var singleImg = imgArray[i]; newPath+= singleImg.originalFilename; readAndWriteFile(singleImg, newPath); } res.send("File uploaded to: " + newPath); }); function readAndWriteFile(singleImg, newPath) { fs.readFile(singleImg.path , function(err,data) { fs.writeFile(newPath,data, function(err) { if (err) console.log('ERRRRRR!! :'+err); console.log('Fitxer: '+singleImg.originalFilename +' - '+ newPath); }) }) } }) 

确保你的表单有enctype =“multipart / form-data”

我希望这给你一个手;)