Eggjs 应用ctx.getFileStream进行文件上传

最近在应用eggjs上传文件时,无奈获取到前端定义的字段,始终为空,在此记录一下

前端代码

handleRequest(param) {      let fileObj = param.file;      // FormData 对象      let form = new FormData();      // 文件对象      form.append('bizId', this.apartment.id);      form.append('bizType', '1');      form.append('file', fileObj);  // 留神这个中央挪动要放append到最初面        fileApi.uploadSave(form).then((res) => {       //...      })    },

后端

// 应用了案例云的OSS async ossStreamSave() {    const { ctx } = this;    try {      // ★★★★★ 提醒,前端 formData.append(‘filename’, file) 必须放到最初,否则ctx.getFileStream()取流实现时stream.fields依然是空的      let stream;      stream = await ctx.getFileStream();      const params = {        bizId: stream.fields.bizId,        bizType: stream.fields.bizType,        url: '',        submittedFileName: stream.filename,        contextType: stream.mimeType,        ext: stream.filename.split('.')[1],      };            const uid = UUID.v4();      const name = 'tks/' + path.basename(`${uid}.${params.ext}`);      const result = await client.put(name, stream);              params.url = result.url;      const res = await ctx.model.TksFile.create(params);      return res;    } catch (err) {      return false;    }  }

参考:https://blog.csdn.net/qq_3615...

https://github.com/eggjs/egg/...