使用koa编写上传文件接口

311 阅读1分钟

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表示存放态资源的文件夹

image.png

3. 使用postman测试接口

image.png

在浏览器中也可以访问

image.png