NodeJS Express上传文件

分类:WEB前端 时间:

现在国内越来越多的公司和项目在使用NodeJS。NodeJS开发者也在不停的开发NodeJS的新功能。目前来看,Nodejs一定会是当前的趋势。在项目中的使用场景越来越多,NodeJS也越来越强大。下面PHP程序员雷雪松详细的讲解下Express中如何上传文件。

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);
});

标签:
来源:NodeJS Express上传文件

5 评论 “NodeJS Express上传文件

    跨境电商平台 评论:
    2016年10月23日 上午4:37

    学习了,涨姿势啊!!

    炒股入门知识 评论:
    2016年11月2日 上午12:15

    感谢老实分享

    信阳私房茶 评论:
    2016年11月5日 上午10:46

    好晕,技术文

    高平台球阀 评论:
    2016年11月9日 上午10:36

    感觉博主的博客分享的都是技术类的文章,对于我们小白很有帮助。

    kTWO 评论:
    2016年12月26日 下午6:42

    博主博客真好看,内容也不错。

发表评论

电子邮件地址不会被公开。 必填项已用*标注