猿问

node接收上传的文件流只能接收一部分?

问题描述

前端上传excel文件,后端接收并处理文件

相关代码

// 请把代码文本粘贴到下方(请勿用图片代替代码)

async importMember() {
   
    const stream = await this.ctx.getFileStream();
    
    stream.on('data',() =>{        //这里只执行一次左右 有时候两次 chunk加起来的大小也不对
    })
    
    stream.on('end',() =>{        //这里不触发
    })
   
    stream.on('error',()=>{        //这里也不触发
    })
  }

你期待的结果是什么?实际看到的错误信息又是什么?

data事件应该执行完全,stream接收完成后应该触发end事件,即使有错误,应该触发error事件。

找了一天 怀疑是环境问题,nginx那边限制也打开了,还是没用。。 
请求大神帮忙解析


心有法竹
浏览 1384回答 1
1回答

有只小跳蛙

已经解决了,问题让人哭笑不得。这里提醒后面可能遇到这个问题的人:一定要保证stream在node端接收完成后才能在controller里返回值,不然会认为该http访问结束,从而导致上传的文件流中途结束。
随时随地看视频慕课网APP

相关分类

Node.js
我要回答