怎么修改 node.js koa-body uploadDir 中的文件名?
时间: 2024-05-08 18:16:39 浏览: 275
可以通过设置`koa-body`的`rename`选项来修改上传文件的文件名。该选项可以是一个函数,接收两个参数:`file`表示上传的文件对象,`fields`表示上传文件时的表单字段。在函数内部可以通过修改`file.name`属性来修改上传文件的文件名。例如:
```js
const Koa = require('koa');
const koaBody = require('koa-body');
const fs = require('fs');
const app = new Koa();
app.use(koaBody({
multipart: true,
formidable: {
uploadDir: './uploads',
keepExtensions: true,
onFileBegin: (name, file) => {
file.name = 'newName' + file.name.slice(file.name.lastIndexOf('.'));
}
}
}));
app.use(async (ctx) => {
const file = ctx.request.files.file;
console.log(file.name); // 输出 "newName.jpg"
ctx.body = 'File uploaded';
});
app.listen(3000);
```
在上面的例子中,我们在`koa-body`的`formidable`配置项中设置了`onFileBegin`回调函数。在该函数中,我们修改了`file.name`属性,将上传的文件名修改为了`newName.jpg`。在请求处理函数中,我们可以通过`ctx.request.files.file`获取上传的文件对象,并输出其文件名。
阅读全文