1. 在routes文件夹中创建一个upload.js文件,文件代码如下
const Router = require("koa-router");
const router = new Router();
const path = require('path');
const fs = require('fs')
const multer = require("@koa/multer");
const upload = new multer({ dest: "public/uploads" });
// 修改上传文件的配置
router.post("/", upload.single("file"), (ctx, next) => {
console.log(ctx.request.file,111111);
const ext = path.extname(ctx.request.file.originalname); // 获取文件扩展名
const newFilename = `${ctx.request.file.filename}${ext}`; // 添加扩展名
// 修改文件名称
fs.renameSync(
ctx.request.file.path,
path.join(ctx.request.file.destination,newFilename)
);
ctx.body = {
code:200,
message:'上传成功',
data:{
url:`/uploads/${newFilename}`
}
};
});
module.exports = router;
2. 在入口文件app.js中,配置静态资源加载中间件
const koaStatic = require('koa-static')
// 配置静态资源加载中间件
app.use(koaStatic(
path.join(__dirname , './public')
))
上面的public表示存放态资源的文件夹
3. 使用postman测试接口
在浏览器中也可以访问