2012-02-06 66 views
4

是否可以使用Googles GWT RPC機制創建文件上傳? 就像現在我正在使用一個簡單的HTTPServlet和一個doPost方法一樣,這個方法從表單中尋址!是否可以通過GWT RPC Servlets上傳文件?

它是否(沒有類似gwtupload的庫的幫助)可以通過GWTs FileUpload Widget將XML文件上傳到RPC服務並使用文件內容?

BR; mybecks

回答

5

實際上,有兩種上傳gwtupload文件的方式,就像你提到的那樣,通過gwt-rpc這個有點難,因爲瀏覽器的安全性。爲了用gwt-rpc實現,你應該在繼承RemoteServiceServlet的服務實現中覆蓋service(final HttpServletRequest request,HttpServletResponse response)方法。 對於客戶端,你應該有代碼是這樣的:

final FormPanel formPanel = new FormPanel(); 
formPanel.setAction(GWT.getModuleBaseURL()+」fileUpload」); 
formPanel.setEncoding(FormPanel.ENCODING_MULTIPART); 
formPanel.setMethod(FormPanel.METHOD_POST); 

service方法,你可以用using FileUpload獲取文件,並別忘了在你的web.xml文件上傳註冊的URL模式,也@RemoteServiceRelativePath("path")你服務接口繼承RemoteService。祝你好運!

3

這是可能的,但它並不那麼容易。首先,您需要能夠從客戶端代碼讀取文件。大多數瀏覽器支持FileReader API,但不支持all。因此,對於Internet Explorer,您將不得不使用Flash或其他插件技術來訪問文件。

此外,默認情況下,GWT中沒有文件讀取器API的綁定,因此您必須自行完成。

接下來的事情是,你要通過GWT -RPC發送文件作爲Base64編碼的字符串,你將不得不在服務器端解碼。因此,如果用戶開始上傳大量大文件(大約20 MB),則可能會遇到一些內存問題。

相關問題