Как загрузить файл, используя Koa.JS 2? - PullRequest
0 голосов
/ 01 октября 2018

Как загрузить файл с помощью Koa.JS 2?Я пытался использовать koa.js, но не получал файл в объекте ctx.

1 Ответ

0 голосов
/ 01 октября 2018

это ваши лучшие варианты

async-busboy

koa-multer

пример koa-multer:

import Router from 'koa-router';
import multer from 'koa-multer';

const router = new Router();

const upload = multer({
 storage: multer.memoryStorage()
});

router.post('/upload', upload.single('document'), async ctx => {
const { file } = ctx.req;

// Do stuff with the file here

ctx.status = 200;
});

источник

попытаться выполнить некоторую проверку перед загрузкой (изменить имя, если файл существует) - частичный пример кода:

let storage = multer.diskStorage({
 destination: function(req, file, callback) {
    callback(null, './public/uploads')
 },
 filename: function(req, file, callback) {
    callback(null, file.fieldname + '-' + Date.now() + 
 path.extname(file.originalname))
    //callback(null, file.originalname)
 }
})

app.post('/api/file', function(req, res) {
var upload = multer({
    storage: storage}).single('userFile');
upload(req, res, function(err) {
    console.log("File uploaded");
    res.end('File is uploaded')
})
})

пример источника

...