koa2 图片上传

首先必须允许文件上传

const KoaBody = require("koa-body");

// 使用文件上传中间件

app.use(KoaBody({ multipart: true }));

然后是要然外部能访问图片

const serve = require("koa-static");

const path = require("path");

app.use(serve(path.join(__dirname, "/public")));

焯,直接看官方的吧

const Koa = require('koa');
const Router = require('@koa/router');
const multer = require('@koa/multer');

const app = new Koa();
const router = new Router();
const upload = multer(); // note you can pass `multer` options here

// 添加多个文件上传的路由
router.post(
  '/upload-multiple-files',
  upload.fields([
    {
      name: 'avatar',
      maxCount: 1
    },
    {
      name: 'boop',
      maxCount: 2
    }
  ]),
  ctx => {
    console.log('ctx.request.files', ctx.request.files);
    console.log('ctx.files', ctx.files);
    console.log('ctx.request.body', ctx.request.body);
    ctx.body = 'done';
  }
);

// 添加单个文件上传的路由
router.post(
  '/upload-single-file',
  upload.single('avatar'),
  ctx => {
    console.log('ctx.request.file', ctx.request.file);
    console.log('ctx.file', ctx.file);
    console.log('ctx.request.body', ctx.request.body);
    ctx.body = 'done';
  }
);

// 将路由器添加到我们的应用程序中
app.use(router.routes());
app.use(router.allowedMethods());

// 启动服务器
app.listen(3000);

重要的注意点就是,请求的key值要跟 upload.fields 中的 name 一样,如上我请求的 name 是 avatar 所以我在请求的时候发送请求的 key 也要写成 avatar ,如下

koa2 图片上传

 

 

上一篇:Session(重点)


下一篇:Spring Boot - HttpSession