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
那边限制也打开了,还是没用。。
请求大神帮忙解析
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
已经解决了,问题让人哭笑不得。
这里提醒后面可能遇到这个问题的人:
一定要保证
stream
在node
端接收完成后才能在controller
里返回值,不然会认为该http
访问结束,从而导致上传的文件流中途结束。