是否可以使用Googles GWT RPC机制创建文件上传? 现在,我正在使用一个带有doPost方法的简单HTTPServlet,该方法可以从表单中获取!
是否(没有像gwtupload这样的lib的帮助)可以通过GWTs FileUpload Widget将XML文件上传到RPC服务并使用文件的内容吗?
BR; mybecks
答案 0 :(得分:5)
实际上,有两种方法可以像你提到的那样使用gwtupload上传文件,并且通过gwt-rpc,由于浏览器的安全性,这个方法有点困难。要使用gwt-rpc实现,您应该在服务实现中覆盖继承service(final HttpServletRequest request,HttpServletResponse response)
的{{1}}方法。
对于客户端,您应该具有以下代码:
RemoteServiceServlet
在final FormPanel formPanel = new FormPanel();
formPanel.setAction(GWT.getModuleBaseURL()+”fileUpload”);
formPanel.setEncoding(FormPanel.ENCODING_MULTIPART);
formPanel.setMethod(FormPanel.METHOD_POST);
内部方法中,您可以使用using FileUpload获取文件,并且不要忘记在web.xml中注册fileupload url模式,并在服务接口中注册继承service
{ {1}}。祝好运!
答案 1 :(得分:3)
这是可能的,但并不容易。首先,您需要能够从客户端代码中读取文件。大多数浏览器都支持FileReader API,但不支持all。因此,对于Internet Explorer,您将不得不使用Flash或其他一些插件技术来访问文件。
默认情况下,GWT中的File Reader API没有绑定,因此您必须自己完成。
接下来就是你要通过GWT -RPC将文件作为Base64编码的字符串发送,你必须在服务器端解码。因此,如果您的用户开始上传大量大文件(大约20 MB),您可能会遇到一些内存问题。