1、安装
想要使用自然是先安装
yarn add koa-body
yarn add koa
yarn add koa-router
2、注册/使用
注册,这里是重点
import Koa from "koa"
import koaBody from "koa-body";
import path from "path";
import fileRouter form "./fileRouter"; //自己的路由具体文件内容在下面获取文件里面
const app = Koa();
app.use(koaBody({
multipart: true,
formidable: {
maxFieldsSize: 10 * 1024 * 1024, // 最大长度
uploadDir: path.join(__dirname, "../public"), //这里是你的存放文件的文件夹
keepExtensions: true, //是否保留扩展名
multiples: false //是否多选
}
}));
fileRouter(app);
app.listen(23333,()=>{
console.log("http://127.0.0.1:23333启动成功");
})
3、获取文件
经过上面的注册,如果前端请求了你的文件上传接口那么这个接口的ctx会被上一步挂载文件保存相关的属性
import Router from "koa-router";
const fileRouter = new Router({prefix: "/file"});
export default (app) => {
//获取文件
fileRouter.post("/saveFile",upFile);
app.use(fileRouter.routes()).use(fileRouter.allowedMethods());
const upFile = (ctx) => {
if (ctx.request.files) { //这里就是插件添加的
const { file } = ctx.request.files; //file上有很多属性,下面只是返回了文件名
if(file){
ctx.body = {
code: 0,
msg: "上传成功",
data: `${file.name}`
}
}
} else {
ctx.body = {
code: -1,
msg: "上传失败",
data: null
}
}
}
}
4、我的代码依赖
我使用typescript + koa2写的,依赖项如下:
5、总结
上面是我在使用koa2的时候获取前端上传文件的做法,写的不好,有什么说的不清楚的地方可以留言评论,如有错误的地方,希望大佬不吝赐教!