是否可以通过GWT RPC servlet上载文件?

是否可以通过GWT RPC servlet上载文件?,gwt,file-upload,gwt-rpc,Gwt,File Upload,Gwt Rpc,是否可以使用Google GWT RPC机制创建文件上载? 现在,我正在使用一个简单的HTTPServlet和一个doPost方法,该方法从表单中获得地址 (没有像gwtupload这样的LIB的帮助)可以通过GWTs FileUpload小部件将XML文件上载到RPC服务并处理文件内容吗 BR; 麦贝克:这是可能的,但不是那么容易。首先,您需要能够从客户机代码中读取文件。大多数浏览器都支持FileReader API,但不是全部。所以对于Internet Explorer,您必须使用flash

是否可以使用Google GWT RPC机制创建文件上载? 现在,我正在使用一个简单的HTTPServlet和一个doPost方法,该方法从表单中获得地址

(没有像gwtupload这样的LIB的帮助)可以通过GWTs FileUpload小部件将XML文件上载到RPC服务并处理文件内容吗

BR;
麦贝克:这是可能的,但不是那么容易。首先,您需要能够从客户机代码中读取文件。大多数浏览器都支持FileReader API,但不是全部。所以对于Internet Explorer,您必须使用flash或其他插件技术来访问文件

此外,默认情况下,GWT中没有文件读取器API的绑定,因此您必须自己进行绑定


下一件事是,您将通过GWT-RPC以Base64编码字符串的形式发送文件,并且必须在服务器端进行解码。因此,如果用户开始上载大量大文件(大约20MB),您可能会遇到一些内存问题

实际上,有两种方法可以使用gwtupload上传文件,正如您所提到的,而且由于浏览器的安全性,这一种有点困难。对于使用gwt rpc实现,您应该重写服务实现中继承的
RemoteServiceServlet
方法。 对于客户端,您应该有如下代码:

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

service
方法中,您可以使用该方法获取文件,并且不要忘记在web.xml中注册fileupload url模式,以及在继承
RemoteService
的服务界面中注册
@remoteservicereparatePath(“路径”)
。祝你好运

这是最终决定。无法覆盖`@Override public final void processPost(HttpServletRequest请求,HttpServletResponse响应)引发IOException、ServletException、SerializationException{`