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


2 回复

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


express-fileuploader 是一个适用于 Express 框架的通用文件上传库,旨在简化文件上传处理流程,并提供了多种策略供用户根据需求进行选择和扩展。

特性

  • 自动删除临时文件:上传成功后会自动删除临时文件,防止磁盘空间被占用。
  • 解耦 multipart 解析:用户可以选择适合自己的 multipart 解析器。
  • 插件式设计:可以轻松地添加或移除功能模块。
  • 灵活的上传逻辑:支持自定义上传策略,例如将文件上传到 Dropbox、七牛云等。
  • 内置策略:目前包含上传到本地目录的 LocalStrategy 和上传到七牛云存储的 QiniuStrategy

安装

首先,你需要通过 npm 安装 express-fileuploader 库:

npm install express-fileuploader --save

使用示例

以下是一个简单的示例,演示如何设置一个基本的文件上传路由,该路由会将上传的文件保存到本地服务器:

const express = require('express');
const multipartMiddleware = require('connect-multiparty');
const fileUploader = require('express-fileuploader');

// 初始化 Express 应用
const app = express();

// 设置 multipart 解析中间件
app.use('/upload/image', multipartMiddleware());

// 配置 LocalStrategy 策略
fileUploader.use(new fileUploader.LocalStrategy({
  uploadPath: '/path/to/upload/directory',
  domain: 'http://yourdomain.com'
}));

// 处理文件上传请求
app.post('/upload/image', (req, res, next) => {
  fileUploader.upload('local', req.files.images, (err, files) => {
    if (err) {
      return next(err);
    }
    // 返回上传结果
    res.json(files);
  });
});

// 启动服务器监听端口
app.listen(3000, () => {
  console.log('Server running on port 3000');
});

在这个例子中,我们首先设置了 Express 应用并添加了 connect-multiparty 中间件来解析 multipart 请求。然后,我们配置了 LocalStrategy 策略用于将文件上传到指定路径。最后,定义了一个处理文件上传的 POST 路由 /upload/image,并在成功上传后返回上传文件的信息。

回到顶部