为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

心有法竹 2018-08-18 21:07:45
问题描述前端上传excel文件,后端接收并处理文件相关代码// 请把代码文本粘贴到下方(请勿用图片代替代码)async importMember() {         const stream = await this.ctx.getFileStream();          stream.on('data',() =>{        //这里只执行一次左右 有时候两次 chunk加起来的大小也不对     })          stream.on('end',() =>{        //这里不触发     })         stream.on('error',()=>{        //这里也不触发     })   }你期待的结果是什么?实际看到的错误信息又是什么?data事件应该执行完全,stream接收完成后应该触发end事件,即使有错误,应该触发error事件。找了一天 怀疑是环境问题,nginx那边限制也打开了,还是没用。。 请求大神帮忙解析
查看完整描述

1 回答

?
有只小跳蛙

TA贡献1824条经验 获得超8个赞

已经解决了,问题让人哭笑不得。

这里提醒后面可能遇到这个问题的人:

一定要保证streamnode端接收完成后才能在controller里返回值,不然会认为该http访问结束,从而导致上传的文件流中途结束。


查看完整回答
2 反对 回复 2018-08-19
  • 豆瓣酱_
    豆瓣酱_
    on('end') 就是不执行
  • 豆瓣酱_
    豆瓣酱_
    一定要保证stream在node端接收完成后才能在controller里返回值 这个怎么操作,感谢
  • 1 回答
  • 0 关注
  • 1376 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信