const Koa = require('koa');
const Router = require('koa-router');
const koaBody = require('koa-body');
const app = new Koa();
const router = new Router();
// 配置 koa-body 中间件,以便在请求中解析出文件上传数据
app.use(koaBody({
multipart: true,
formidable: {
maxFieldsSize: 10 * 1024 * 1024, // 最大文件大小为 10MB
multipart: true,
keepExtensions: true // 保持原始文件的扩展名
}
}));
// 处理文件上传请求
router.post('/upload', async (ctx, next) => {
const file = ctx.request.files.file; // 获取上传的文件
const reader = fs.createReadStream(file.path); // 创建可读流
const ext = file.name.split('.').pop(); // 获取文件后缀名
const fileName = `${Date.now()}.${ext}`; // 生成新文件名
const stream = fs.createWriteStream(`./uploads/${fileName}`); // 创建可写流
reader.pipe(stream); // 将可读流的数据写入可写流
ctx.body = { message: '文件上传成功' };
});
app.use(router.routes());
app.listen(3000);
koa上传文件
最新推荐文章于 2024-10-01 14:39:47 发布