同样也是在开发 nodediscuss 的过程中实现的,现在单独拆分出来作为一个库,方便有文件上传需求的同学们。
GitHub: https://github.com/heroicyang/express-fileuploader
特性
- 在上传成功之后自动删除临时文件(原因请参见这里)
- 不负责
multipart
解析,你可以自由选择multipart parser
- 插件式,可插拔
- 可根据自己的需求自定义上传逻辑(Strategy),比如将文件上传至
Dropbox
等 - 正在不断增加的各种 Strategy,内置上传至服务器本地目录的
LocalStrategy
。另外,现在已经实现了上传至七牛云存储的 QiniuStrategy。
安装
npm install express-fileuploader --save
使用
var http = require('http');
var express = require('express');
var mutilpart = require('connect-multiparty');
var uploader = require('express-fileuploader');
var app = express();
app.use('/upload/image', mutilpart());
uploader.use(new uploader.LocalStrategy({
uploadPath: '/uploads',
domain: 'http://127.0.0.1:8000'
}));
app.post('/upload/image', function(req, res, next) {
uploader.upload('local', req.files['images'], function(err, files) {
if (err) {
return next(err);
}
res.send(JSON.stringify(files));
});
});
http.createServer(app).listen(8000);
更多请参见 GitHub