是否可以使用Googles GWT RPC機制創建文件上傳? 就像現在我正在使用一個簡單的HTTPServlet和一個doPost方法一樣,這個方法從表單中尋址!是否可以通過GWT RPC Servlets上傳文件?
它是否(沒有類似gwtupload的庫的幫助)可以通過GWTs FileUpload Widget將XML文件上傳到RPC服務並使用文件內容?
BR; mybecks
是否可以使用Googles GWT RPC機制創建文件上傳? 就像現在我正在使用一個簡單的HTTPServlet和一個doPost方法一樣,這個方法從表單中尋址!是否可以通過GWT RPC Servlets上傳文件?
它是否(沒有類似gwtupload的庫的幫助)可以通過GWTs FileUpload Widget將XML文件上傳到RPC服務並使用文件內容?
BR; mybecks
實際上,有兩種上傳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
。祝你好運!
這是可能的,但它並不那麼容易。首先,您需要能夠從客戶端代碼讀取文件。大多數瀏覽器支持FileReader API,但不支持all。因此,對於Internet Explorer,您將不得不使用Flash或其他插件技術來訪問文件。
此外,默認情況下,GWT中沒有文件讀取器API的綁定,因此您必須自行完成。
接下來的事情是,你要通過GWT -RPC發送文件作爲Base64編碼的字符串,你將不得不在服務器端解碼。因此,如果用戶開始上傳大量大文件(大約20 MB),則可能會遇到一些內存問題。