Nodejs 发布了一个适用于 Express 的通用文件上传库:express-fileuploader
Nodejs 发布了一个适用于 Express 的通用文件上传库:express-fileuploader
同样也是在开发 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
Nodejs 发布了一个适用于 Express 的通用文件上传库:express-fileuploader
同样也是在开发 nodediscuss 的过程中实现的,现在单独拆分出来作为一个库,方便有文件上传需求的同学们。
GitHub: https://github.com/heroicyang/express-fileuploader
特性
- 自动清理临时文件:在上传成功之后自动删除临时文件,以避免内存泄漏问题。
- 灵活的解析器:不负责
multipart
解析,你可以自由选择multipart parser
。 - 插件式设计:可以轻松地插入或移除功能模块。
- 自定义上传逻辑:可以根据自己的需求自定义上传逻辑,例如将文件上传至
Dropbox
或其他云存储服务。 - 内置策略:提供多种上传策略,如上传至服务器本地目录的
LocalStrategy
和上传至七牛云存储的QiniuStrategy
。
安装
npm install express-fileuploader --save
使用
首先,确保你已经安装了必要的依赖项:
npm install express connect-multiparty --save
然后,在你的项目中引入并配置 express-fileuploader
:
const http = require('http');
const express = require('express');
const multipart = require('connect-multiparty');
const uploader = require('express-fileuploader');
const app = express();
// 使用 connect-multiparty 进行 multipart 解析
app.use('/upload/image', multipart());
// 配置 LocalStrategy
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, () => {
console.log('Server is running on port 8000');
});
在这个示例中,我们首先创建了一个 Express 应用,并使用 connect-multiparty
中间件来处理 multipart 表单数据。接着,我们配置了 LocalStrategy
来指定文件上传的目标路径和域名。最后,我们定义了一个路由 /upload/image
来处理文件上传请求,并在成功后返回文件信息。
更多详细信息和示例代码请参见 GitHub。