Я пытаюсь разрешить пользователю загружать файл с помощью каркаса Koa, сохранять его на стороне сервера и разрешать его повторную загрузку позже.
При загрузке файла с koa-body файл загружается без расширения и случайной строки. Как передать файл в качестве файла загрузки с оригинальным именем файла и расширением?
Все онлайн-примеры, которые я нашел в Интернете, предполагают, что файл был загружен с оригинальным именем файла, а здесь это не так.
const bodyparser = require('koa-body');
app.use(bodyparser({
formidable: { uploadDir: './uploads' },
multipart: true,
basedir: './views',
apps: app,
}));
Файлы правильно загружаются в папку загрузки, но имя файла и расширение удаляются и заменяются случайной строкой. (напр. upload_1d421fb33fcd1d43efc41352975358da)
router.post('/add', add);
router.get('/download/:filename', getDownload);
async function add(ctx) {
const { body } = ctx.request;
const thingfile = await ctx.request.files.thingfile;
things.push({ name: body.thing, file: thingfile });
ctx.redirect('/');
}
async function getDownload(ctx) {
const {filename} = ctx.params;
ctx.attachment(filename);
await send(ctx, fname, { root: __dirname + '/uploads' });
}
Я могу загрузить файл при вызове URL / uploads / upload_1d421fb33fcd1d43efc41352975358da, но файл должен быть переименован вручную на стороне клиента для правильной работы.
Очевидно, я что-то упускаю или делаю это совершенно неправильно.
Я немного заблудился, поэтому спасибо заранее, чтобы направить меня обратно на ходу!