2012-06-26 74 views
1

我有一个下面的问题 - 我们正在使用FormPanel它发送文件到Servlet,它接受参数并试图从这个文件中解析XML。这工作正常。GWT文件上传

问题是当用户上传错误的文件,因此解析以SAXException结尾,我想传播(或异常的消息)到客户端。我试过类似

catch (SAXException ex) { 
    response.setStatus(HttpServletResponse.SC_UNSUPPORTED_MEDIA_TYPE); 
    response.flushBuffer(); 
} 

但它不工作,我总是得到空标签前(<pre></pre>)。我试图用

formPanel.addSubmitCompleteHandler(new SubmitCompleteHandler() { 

    @Override 
    public void onSubmitComplete(SubmitCompleteEvent event) { 
     String s = event.getResults(); 
    }); 

我可以用response.getWriter().write("Error");在我的Servlet,但如何在客户端就会知道,如果错误发生真的还是不?使用类似event.getResults().contains("error")并不在我看来,作为一个正确的解决方案,以抓住这个。

所以我想使用RequestBuilder,但我没有看到一种方式我怎么能得到上传的文件,并将其推送到我的servlet。或者,也许转换我的消息到JSON会有帮助?

回答

1

您应该参考谷歌gwt讨论组上的this thread。您描述的方式,解析event.getResults()以确定是否有错误或成功情况下的结果是正确的方式,即使它看起来很野蛮。

如链接讨论中所建议的,您可以查看GWT Upload以获得更清晰的代码以及上载进度信息。我相信你从网页上传文件到服务器的唯一两种选择是表单或Flash。

+0

谢谢你的回答,我会看GWT上传库。 –