2013-01-12 22 views
2

背景:我正在致力於在Meteor.js上執行文件上傳,當我執行熱代碼推送客戶端刷新其頁面時,但如果它們在文件上傳期間停止。我可以在Meteor熱碼推送中保存文件輸入嗎?

我的問題:「流星hot code push是應用程序的全新更新嗎?」

  • 如果是的話,我的運氣,因爲file輸入不能在會話/ cookie的生存。 但:
  • 如果不是那麼我怎麼才能收到熱碼推? (有此一Meteor.addListener?)

(不,我沒有任何的代碼,因爲這是一個普遍的Meteor.js問題)

+0

我不認爲會有一種方法來使它的生存,但是你可以做一個可恢復,大塊上傳?所以用戶會注意到暫停,但應該重新啓動。 –

+0

它是可恢復的,但不會打擾用戶再次提供文件指針/輸入。 collectionfs.meteor.com – RaiX

回答

2

的方式熱碼推的工作原理是將其序列您的應用程序狀態並刷新頁面,然後恢復狀態。不幸的是,文件上傳有點複雜。我想你實際上並沒有將文件上傳進度存儲在應用程序狀態中,這意味着如果頁面刷新,它將不會再次自行啓動並繼續。

要解決此問題,您可以先將上傳文件本地存儲在數據庫中,然後從那裏上傳。跟蹤已上傳了多少內容,然後在應用刷新時告訴應用繼續從停止的位置繼續。

顯然這是一個不平凡的問題。就我個人而言,我可能會認爲這是一個邊緣案例,並要求用戶重新上傳文件,而不是花費所有時間來設計解決方案。除非你的應用使用案例完全由上傳文件組成,在這一點上,你有一個挑戰在你的手上:-)

+0

那麼,實際上它的可恢復性,複雜的部分是保存實際的文件指針 - 沒有運氣把文件對象放在會話變量中。想到使用本地存儲,但什麼是用戶上傳,例如。 820Mb?如果要使用本地存儲,我會保存文件的最後一部分,希望連接能持續足夠長的時間。它是collectionfs.meteor.com – RaiX

+0

由於用戶授予該站點訪問該文件的權限,因此如果瀏覽器能夠在下次記住這一點,那將會很不錯。未來的談話。 – RaiX

相關問題