我可以在Meteor热码推送中保存文件输入吗?

问题描述:

背景:我正在致力于在Meteor.js上执行文件上传,当我执行热代码推送客户端刷新其页面时,但如果它们在文件上传期间停止。我可以在Meteor热码推送中保存文件输入吗?

我的问题:“流星hot code push是应用程序的全新更新吗?”

  • 如果是的话,我的运气,因为file输入不能在会话/ cookie的生存。 但:
  • 如果不是那么我怎么才能收到热码推? (有此一Meteor.addListener?)

(不,我没有任何的代码,因为这是一个普遍的Meteor.js问题)

+0

我不认为会有一种方法来使它的生存,但是你可以做一个可恢复,大块上传?所以用户会注意到暂停,但应该重新启动。 –

+0

它是可恢复的,但不会打扰用户再次提供文件指针/输入。 collectionfs.meteor.com – RaiX

的方式热码推的工作原理是将其序列您的应用程序状态并刷新页面,然后恢复状态。不幸的是,文件上传有点复杂。我想你实际上并没有将文件上传进度存储在应用程序状态中,这意味着如果页面刷新,它将不会再次自行启动并继续。

要解决此问题,您可以先将上传文件本地存储在数据库中,然后从那里上传。跟踪已上传了多少内容,然后在应用刷新时告诉应用继续从停止的位置继续。

显然这是一个不平凡的问题。就我个人而言,我可能会认为这是一个边缘案例,并要求用户重新上传文件,而不是花费所有时间来设计解决方案。除非你的应用使用案例完全由上传文件组成,在这一点上,你有一个挑战在你的手上:-)

+0

那么,实际上它的可恢复性,复杂的部分是保存实际的文件指针 - 没有运气把文件对象放在会话变量中。想到使用本地存储,但什么是用户上传,例如。 820Mb?如果要使用本地存储,我会保存文件的最后一部分,希望连接能持续足够长的时间。它是collectionfs.meteor.com – RaiX

+0

由于用户授予该站点访问该文件的权限,因此如果浏览器能够在下次记住这一点,那将会很不错。未来的谈话。 – RaiX