nodejs实现文件上传功能


前端,通过html的form标签实现文件上传功能,后端Nodejs用express模块接收。

后端nodejs代码



var express = require('express');
//form表单需要的中间件。
var mutipart= require('connect-multiparty');

var mutipartMiddeware = mutipart();
var app = express();

//修改临时文件的储存位置
app.use(mutipart({uploadDir:'./linshi'}));

//设置http服务监听的端口号。
app.set('port',process.env.PORT || 3000);
app.listen(app.get('port'),function () {
console.log("Express started on http://localhost:"+app.get('port')+'; press Ctrl-C to terminate.');
});

//浏览器访问localhost会输出一个html文件
app.get('/',function (req,res) {
res.type('text/html');
res.sendFile(__dirname+'public/index.html')

});

//这里用来玩,express框架路由功能写的,与上传文件没没有关系。
app.get('/about',function (req,res) {
res.type('text/plain');
res.send('Travel about');
});

//这里就是接受form表单请求的接口路径,请求方式为post。
app.post('/upload',mutipartMiddeware,function (req,res) {
//这里打印可以看到接收到文件的信息。
console.log(req.files);
/*//do something
* 成功接受到浏览器传来的文件。我们可以在这里写对文件的一系列操作。例如重命名,修改文件储存路径 。等等。
*
*
* */

//给浏览器返回一个成功提示。
res.send('upload success!');
});

前端代码



<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<body>
<form action="/upload" enctype="multipart/form-data" method="post">
<p>附件:<input type="file" name="myfile" style=""></p>
<p>
<input type="submit">
</p>
</form>
</body>
</html>

nodejs实现文件上传,挺简单吧。
如果要部署,为防止代码被窃取,可以使用jshaman,在线的js代码混淆,可以把nodejs代码保护一下,保护后别人拿到代码也看不了。