egg 上传文件

使用file模式上传文件

1,代码

 controller文件:

import { Controller } from 'egg';
const path = require('path');
const fs = require('fs');

export default class HomeController extends Controller {
  public async upload() {
    const { ctx } = this;
    const file = ctx.request.files[0];
    const fileinfo = fs.readFileSync(file.filepath);
    const name = `YLW_${new Date().getTime()}_${file.filename}`;
    const target = path.join(this.config.baseDir, `app/public/upload/${name}`);
    try {
      await fs.writeFileSync(target, fileinfo);
    } catch (error) {
      throw error;
    } finally {
      await fs.unlink(file.filepath, err => {
        if (err) {
          throw err;
        }
        console.log('删除缓存文件:' + file.filepath + '成功!');
      });
    }
    ctx.body = { code: 200, message: '上传成功!', data: target, file };
  }
}

config.default.js:

 // 启用 file 模式:
  config.multipart = {
    mode: 'file',
    fileSize: '50mb',
    fileExtensions: [ '.txt' ], // 增加对 txt 扩展名的文件支持
  };

2,测试

  • 2
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值