我需要在后台上传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 就不可能将文件上传到服务器。我认为它被浏览器阻止了,因为这意味着当您访问网站时任何人都可以从您的系统上传任何文件,这将是一个主要的安全问题。我不知道你为什么要这样做,但我想你需要考虑另一种方法来实现你想要做的事情。
我是一名优秀的程序员,十分优秀!