在Egg.js中编写上传图片的接口需要安装egg-multipart插件。egg-multipart是Egg.js提供的一个上传文件的插件,使用它可以方便地实现上传图片的功能。下面是实现上传图片的接口的步骤:
安装egg-multipart插件:
在项目目录下,使用npm或者yarn命令安装egg-multipart插件:
npm install egg-multipart --save
或者:
yarn add egg-multipart
配置插件:
在config/plugin.js文件中添加以下代码:
exports.multipart = {
enable: true,
package: 'egg-multipart',
};
编写上传图片的接口:
在controller目录下创建一个文件,例如image.js,然后添加如下代码:
const Controller = require('egg').Controller;
class ImageController extends Controller {
async upload() {
const { ctx } = this;
const stream = await ctx.getFileStream();
// 上传图片到指定的目录
const filename = `image_${Date.now()}.${stream.filename.split('.').pop()}`;
const target = `app/public/uploads/${filename}`;
const writeStream = fs.createWriteStream(target);
try {
await pump(stream, writeStream);
} finally {
await ctx.cleanupRequestFiles();
}
// 返回上传成功的信息
ctx.body = {
code: 200,
message: '上传成功',
data: {
filename,
},
};
}
}
module.exports = ImageController;
添加路由:
在router目录下创建一个文件,例如image.js,然后添加如下代码:
module.exports = app => {
const { router, controller } = app;
router.post('/api/image/upload', controller.image.upload);
};
测试接口:
使用postman等工具测试上传图片的接口,上传成功后,返回的数据中应包含上传的图片文件名和路径。
以上就是在Egg.js中实现上传图片的接口的步骤。





被折叠的 条评论
为什么被折叠?



