GWT文件上传

时间:2012-06-26 13:11:36

标签: java gwt file-upload

我遇到以下问题 - 我们正在使用FormPanel将文件发送到Servlet,后者接受参数并尝试从此文件中解析XML。这很好。

问题是用户上传了错误的文件,因此解析以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();
    });

我可以在我的Servlet中使用response.getWriter().write("Error");,但客户端如何知道错误是否确实发生?使用像event.getResults().contains("error")这样的东西在我看来并不是一个正确的解决方案。

所以我正在考虑使用RequestBuilder,但我没有看到如何获取上传文件并将其推送到我的servlet的方法。或者将我的消息转换为JSON会有帮助吗?

1 个答案:

答案 0 :(得分:1)

您应该参考google gwt讨论组中的this thread。您描述的方式,解析event.getResults()以确定是否存在错误或成功的结果是正确的方法,即使它看起来很野蛮。

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