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
[cc lang=”js” ecaped=”true”]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);
});[/cc]
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
博主博客真好看,内容也不错。