Java 使用RequestBuilder上载文件

Java 使用RequestBuilder上载文件,java,gwt,jakarta-ee,Java,Gwt,Jakarta Ee,我需要在后台用GWT上传一个文件,即不是从一个可视化小部件上传 为此,我找到了RequestBuilder类,但很少有关于如何将其用于上载目的的文档 我需要上传的文件内容是100%纯文本 到目前为止,我的代码如下所示: final String filename = UUID.randomUUID().toString() + ".txt"; RequestBuilder rb = new RequestBuilder(RequestBuilder.POST, "http://localhos

我需要在后台用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();
}

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

我认为如果不使用JavaScript进行用户交互,就不可能将文件上载到服务器。我认为它被浏览器屏蔽了,因为这意味着当你访问一个网站时,任何人都可以从你的系统上传任何文件,这将是一个重大的安全问题。我不知道您为什么要这样做,但我想您需要考虑另一种方法来完成您正在尝试的操作。

我认为,如果没有仅使用JavaScript的用户交互,就不可能将文件上载到服务器。我认为它被浏览器屏蔽了,因为这意味着当你访问一个网站时,任何人都可以从你的系统上传任何文件,这将是一个重大的安全问题。我不知道你为什么要这样做,但我想你需要看看另一种方法来完成你正在尝试的事情。

似乎你可以用gears上传文件,所以在最坏的情况下,你可以用javascript实现类似的东西:

似乎你可以用gears上传文件,因此,在最坏的情况下,您可以使用javascript实现如下内容:

这不是浏览器操作,而是从Jetty(JavaEE应用服务器)发送的后台HTTP请求。这是完全可行的(这就是为什么RequestBuilder首先存在的原因),除非我不知道如何构建正确的formattet请求我知道的RequestBuilder是一个GWT客户端类,它被编译成JavaScript,在浏览器中运行。因此,当你说
upload
时,你是指
从浏览器发送到服务器
还是其他方式,或者浏览器与此无关?对于从发送的
HTTP请求,您是指从Jetty发送到浏览器的
或其他方式?这不是浏览器操作,而是从Jetty(Java EE应用服务器)发送的后台HTTP请求。这是完全可行的(这就是为什么RequestBuilder首先存在的原因),除非我不知道如何构建正确的formattet请求我知道的RequestBuilder是一个GWT客户端类,它被编译成JavaScript,在浏览器中运行。因此,当你说
upload
时,你是指
从浏览器发送到服务器
还是其他方式,或者浏览器与此无关?使用从
发送的
HTTP请求,您的意思是从Jetty到浏览器
还是其他方式?