2012-03-06 29 views
0

是否有方法從服務器端接收字節數組或字符串數​​組到GWT客戶端並將其作爲文件打開? 字節數組已經在內存中,我們不想將它寫入服務器中的文件並將URL傳遞迴客戶端。 謝謝GWT從內存中的字節數組打開文件

+0

澄清「打開文件」位。 GWT不支持文件操作API。但是沒有任何東西阻止你通過普通的RPC調用從服務器獲取數據。 – Strelok 2012-03-06 07:54:12

回答

0

GWT Java被編譯成Javascript。

因此,請先嚐試編寫一個基於Javascript的應用程序,通過您的Javascript客戶端打開您的服務器文件「作爲文件」。即使你不知道Javascript - 至少,執行一個思考實驗: - brosers的侷限性是什麼 - 爲什麼瀏覽器約定存在這樣的限制?

你的JavaScript應用程序不能做什麼,你的GWT應用程序也是如此。

你在想什麼是使用文件IO API來訪問你坐在服務器上的文件。還有,爲什麼你想這樣做有兩個可能的原因:

  1. 您熟悉文件IO,你想在GWT Java中,你一直在做了多年的Java做的,你太迷戀更改透視。
  2. 您想爲您的操作系統編寫一個基於Web的界面,並且您的應用程序擁有宏偉的計劃。

如果你處於情況1,你很幸運。你只需要改變你的觀點來尊重異步性和瘦客戶機 - 服務器通信的遠程。

但是,如果這是一個珠穆朗瑪峯,你必須爬過,你仍然堅持在GWT上嘗試File IO模式,那麼你需要爲一個大型項目做好準備。我在說「文件IO模式」而不是「文件io」,因爲你必須模擬它們。顯然,瀏覽器安全技術還不能讓你在瀏覽器的系統上打開一個文件。因此,GWT提供該功能是沒有意義的。

其次,File IO屬於java.io領域。再次,瀏覽器安全性不允許你使用java.io的大部分功能。如果沒有GWT上的file.io功能集,那麼您怎麼可以擁有文件IO。

你可以做的是按照你對文件IO的期望進行縮減,並寫下你希望具有的文件IO特性的規範。比如,打開,關閉,閱讀等等。然後你編寫一些GWT Java類,讓你執行那些小小的模擬文件IO位。

所以,現在我決定谷歌「GWT inputstream outputstream」,還有一些開源項目,你可以從中借用/竊取一些代碼來實現你的生活長期實現模擬客戶端服務器文件io thro GWT的目標。

但我對你的建議是,你應該將你的功能規範轉換成REST服務。 REST是如何訪問谷歌文檔。研究谷歌數據api並瞭解他們如何做到這一點,包括認證框架。

相關問題