要在Koa2中使用koa-multer模块进行图片上传,首先需要安装koa-multer模块:
npm install koa-multer
接下来,在Koa2的入口文件中引入koa-multer模块:
const multer = require('koa-multer');
然后,创建一个用于上传图片的multer实例,并指定图片上传的目标路径和文件命名规则:
const storage = multer.diskStorage({
destination: function (req, file, cb) {
cb(null, 'uploads/') // 指定上传的目标路径
},
filename: function (req, file, cb) {
const extname = path.extname(file.originalname);
cb(null, file.fieldname + '-' + Date.now() + extname); // 指定文件命名规则
}
});
const upload = multer({ storage: storage });
在路由中定义一个用于处理图片上传的接口,并使用multer实例的upload.single()
方法指定上传的文件字段名:
router.post('/upload', upload.single('image'), async (ctx) => {
// 图片上传成功后的处理逻辑
// 可以通过ctx.req.file获取上传的文件信息
ctx.body = '图片上传成功';
});
最后,将路由挂载到Koa2应用中:
app.use(router.routes()).use(router.allowedMethods());
现在,当客户端向/upload
接口发送POST请求,并在请求中包含名为image
的文件字段,koa-multer将会将上传的图片保存到指定的目标路径,并将上传成功的消息返回给客户端。