2011-12-19 23 views
2

鑑於一個非常大的,3 + gig,二進制文件是否有我可以從客戶端到服務器,只有文件的一部分使用JavaScript,因爲我知道什麼字節範圍的文件,我想接​​收?如何使用JavaScript來流式傳輸文件的某些部分?

我有一個Ruby on Rails應用程序需要從客戶端獲取文件的特定部分。正如一位用戶所說,我可以使用Java來做到這一點。

編輯:經過一些閱讀後,似乎HTML5通過切片文件可能是最好的選擇。 http://www.html5rocks.com/en/tutorials/file/dndfiles/

+0

您需要更多關於您正在嘗試的內容以及您嘗試過的內容的詳細信息。你想流音樂嗎?視頻?幻燈片?一本長書? – Dave 2011-12-19 16:17:37

+0

什麼樣的文件? – 2011-12-19 16:18:01

+0

有一個名爲AJAX Push Engine的庫,可用於流式傳輸內容。你可能想看看它。如果您打算使用JavaScript,我建議您使用RingoJS作爲後端。希望這可以幫助。 – 2011-12-19 16:18:26

回答

2

基本的答案是肯定的,假設您的Web服務器支持它(許多人都這麼做)。

您可以使用Range HTTP header來僅請求文件的一部分(例如Range: bytes=1000-2000)。這對你是否有效取決於你試圖完成什麼 - 更多的信息會有所幫助。

請參閱this answer關於使用它的討論。

+0

這看起來像我所需要的,除了我需要從客戶端而不是服務器獲取數據。不過謝謝。 – 2011-12-19 18:32:14

1

不,不是真的(至少不是現在,反正)。當處理文件發送回服務器(包括像只有文件一部分的文件)時,暴露給Javascript的文件處理能力不足以真正做到客戶端有用的任何東西。有人提出了更好的客戶端文件處理的W3C規範的JavaScript,但沒有主要的瀏覽器實現它到足夠的水平,以真正處理這種情況。

我目前正在研究一個具有類似需求的項目,當我們研究這個項目時,我們發現的唯一選擇是使用Flash或使用Java。由於我們比Java更適合使用Java,所以我們選擇了這條路線。

我們目前正在使用Groovy和Griffon框架,以及服務器端的Grails。 Griffon一直很棒,因爲它讓我們擺脫了桌面與webstart vs. applet之間的麻煩,並且由於它基於Groovy構建,因此它可以利用Swing DSLs,因此編寫Swing時不會感到痛苦。

相關問題