天天看點

koa檔案上傳中間件——koa-multer

koa-multer用法基本和multer一緻,npm裡koa-multer的用法介紹比較簡單,可以參考​​multer​​的用法

const Koa = require('koa');
const Router = require('koa-router');
const multer = require('koa-multer');
const path = require('path');

const server = new Koa();

let storage = multer.diskStorage({
destination: path.resolve('upload'),
filename: (ctx, file, cb)=>{
cb(null, file.originalname);
}
});
let fileFilter = (ctx, file ,cb)=>{
//過濾上傳的字尾為txt的檔案
if (file.originalname.split('.').splice(-1) == 'txt'){
cb(null, false); 
}else {
cb(null, true); 
}
}
let upload = multer({ storage: storage, fileFilter: fileFilter });

let router = new Router();
router.post('/upload', upload.single('file'), async ctx => {
if (ctx.req.file){
ctx.body = 'upload success';
} else {
ctx.body = 'upload error';
}
});
server.use(router.routes());

server.listen(8080, ()=>{
console.log('usage: curl http://localhost:8080/upload -F "[email protected]"');
});