是否可以通过GWT RPC Servlets上传文件?

时间:2012-02-06 13:05:36

标签: gwt file-upload gwt-rpc

是否可以使用Googles GWT RPC机制创建文件上传? 现在,我正在使用一个带有doPost方法的简单HTTPServlet,该方法可以从表单中获取!

是否(没有像gwtupload这样的lib的帮助)可以通过GWTs FileUpload Widget将XML文件上传到RPC服务并使用文件的内容吗?

BR; mybecks

2 个答案:

答案 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),您可能会遇到一些内存问题。

相关问题