NodeJS Express上传文件
现在国内越来越多的公司和项目在使用NodeJS。NodeJS开发者也在不停的开发NodeJS的新功能。目前来看,Nodejs一定会是当前的趋势。在项目中的使用场景越来越多,NodeJS也越来越强大。下面雷雪松详细的讲解下Express中如何上传文件。
NodeJS Express上传文件项目目录结构
html:静态HTML文件夹,包括简单的上传form表单。
node_modules:项目依赖模块,包括express、fs、multiparty,没有可以直接用npm安装。
uploads:文件上传的根目录。
index.js:项目入口文件。
package.json:定义包的属性。
完整NodeJS Express上传文件代码:
index.js
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 | var express = require('express'); var path = require('path'); var fs = require('fs'); var multiparty = require('multiparty'); var app = express(); //get请求上传页面 app.get('/', function(req, res) { //注意:如果不使用path.resolve,可能会报错“forbidden”。 res.sendFile(path.resolve(__dirname+ '/html/file.html')); }); //post处理上传操作 app.post('/upload', function(req, res) { //生成multiparty对象,并配置上传目标路径 var form = new multiparty.Form({uploadDir: './uploads/'}); //上传完成后处理 form.parse(req, function(err, fields, files) { var filesTmp = JSON.stringify(files,null,2); if(err){ res.send('上传失败'); } else { var inputFile = files.inputFile[0]; //把临时文件重命名为原文件名称 fs.rename(inputFile.path, './uploads/' + inputFile.originalFilename, function(err) { if(err){ console.log('rename error: ' + err); } else { console.log('rename ok'); } }); } res.send('上传成功:' + './uploads/' + inputFile.originalFilename); }); }); //监听服务 var server = app.listen(3000, function () { var host = server.address().address; var port = server.address().port; console.log('Uploads listening at http://%s:%s', host, port); }); |
2016年10月23日 上午4:37
学习了,涨姿势啊!!
2016年11月2日 上午12:15
感谢老实分享
2016年11月5日 上午10:46
好晕,技术文
2016年11月9日 上午10:36
感觉博主的博客分享的都是技术类的文章,对于我们小白很有帮助。
2016年12月26日 下午6:42
博主博客真好看,内容也不错。