使用RequestBuilder上传文件

时间:2010-02-17 10:17:36

标签: java gwt java-ee

我需要在后台上传GWT文件,即。而不是来自视觉小部件。

为此,我找到了RequestBuilder类,但很少有关于如何使用它进行上传的文档。

我需要上传的文件内容是100%纯文本。

到目前为止我的代码看起来像这样:

final String filename = UUID.randomUUID().toString() + ".txt";

RequestBuilder rb = new RequestBuilder(RequestBuilder.POST, "http://localhost/upload");
rb.setRequestData(selected.getBody()); // getBody() is plain-text
rb.setHeader("Content-Type", "application/x-www-form-urlencodeddata");
rb.setCallback(new RequestCallback() {
    @Override
    public void onResponseReceived(Request request, Response response) {
        w.setUrl("http://localhost/magic.html?hide=status&open=" + filename);
        w.show();
        w.maximize();                            
    }

    @Override
    public void onError(Request request, Throwable exception) {
        exception.printStackTrace();
    }
});

// Checked Exceptions sucks *sigh*
try {
    rb.send();
}
catch (RequestException e) {
    e.printStackTrace();
}

我希望有人能给我一些解决这个问题的建议,谢谢!

2 个答案:

答案 0 :(得分:1)

我认为如果没有使用JavaScript的用户交互,就无法将文件上传到服务器。我认为它被浏览器阻止,因为这意味着任何人都可以在您访问网站时从您的系统上传任何文件,这将是一个主要的安全问题。我不知道你为什么要这样做,但我想你需要看看你想要做的另一种方法。

答案 1 :(得分:0)

您似乎可以使用齿轮上传文件,因此在最糟糕的情况下,您可以使用javascript实现类似的内容:link text