在 Koa 中,koa-body 用于解析请求体,包括文件上传。可以通过设置 koaBodyConfig 来配置文件上传参数。

以下是一个示例配置:

const Koa = require('koa');
const koaBody = require('koa-body');

const app = new Koa();

const koaBodyConfig = {
  multipart: true,
  formidable: {
    maxFileSize: 200 * 1024 * 1024, // 设置上传文件大小限制,默认2M
    uploadDir: 'uploads', // 设置上传文件的保存目录,默认为系统临时目录
    keepExtensions: true, // 保留上传文件的扩展名,默认为 false
  },
};

app.use(koaBody(koaBodyConfig));

// 处理文件上传请求
app.use(async (ctx) => {
  if (ctx.method === 'POST' && ctx.path === '/upload') {
    const file = ctx.request.files.file; // 上传的文件对象
    ctx.body = { message: '文件上传成功', filename: file.name };
  }
});

app.listen(3000, () => {
  console.log('服务已启动,监听端口3000');
});

在上面的代码中,我们通过设置 multipart 为 true 来启用文件上传功能,然后通过 formidable 属性来配置文件上传参数,包括上传文件大小限制、上传文件保存目录以及是否保留上传文件的扩展名等。最后在处理上传请求的中间件中,通过 ctx.request.files.file 获取上传的文件对象,然后可以进行相应的处理。

需要注意的是,koa-body 只能处理 multipart/form-data 类型的请求体,如果需要处理其他类型的请求体,需要使用其他中间件或手动处理。

koa 中koaBodyConfig的文件上传配置

原文地址: http://www.cveoy.top/t/topic/bcip 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录