'use strict'; ?const Controller = require('egg').Controller; ?const request = require('superagent'); ?class ApiController extends Controller { ?????async file() { ?????????const { ctx, app } = this; ?????????// egg内置接口获取上传的文件,参考地址: ?????????const stream = await ctx.getFileStream(); ?????????const url = 'http://demo/api/file'; ?????????????????// attach 需要传3个参数,官方文档上面说文件名不是必传,但是这里面是必须要传的,不传的话在接收端可能无法识别导致文件上传失败 ?????????await request ?????????????.post(url) ?????????????.set('Content-Type', 'multipart/form-data;') ?????????????.attach('file', stream.read(), stream.filename) ?????????????.then(res => { ?????????????????console.log('上传成功', res); ?????????????????ctx.body = res.text; ?????????????}).catch(e => { ?????????????????console.log('上传失败', e); ?????????????????ctx.body = { ?????????????????????msg: '上传失败' ?????????????????}; ?????????????}); ?????} ?} ?
地址资源链接
superagent官方文档
http://visionmedia.github.io/superagent/
egg文件上传参考文档
https://eggjs.org/zh-cn/basics/controller.html#%E8%8E%B7%E5%8F%96%E4%B8%8A%E4%BC%A0%E7%9A%84%E6%96%87%E4%BB%B6
egg.js使用superagent做文件转发
原文地址:https://www.cnblogs.com/lvyueyang/p/9149034.html