我一直在寻找上传后读取文件的一些解决方案,发现了这一点:
Read text file in google GWT?
有一个解决方案
new RequestBuilder(Method.GET, "path/to/file.txt").sendRequest("", new RequestCallback() {
@Override
public void onResponseReceived(Request req, Response resp) {
String text = resp.getText();
// do stuff with the text
}
@Override
public void onError(Request res, Throwable throwable) {
// handle errors
}
});
对于我的情况来说,这似乎是一个可行的解决方案,但是我对此有些陌生,请问有人可以解释如何将其应用于gwt吗?我已经将FileUpload放置在面板中,并且单击处理程序来处理Submit按钮的单击。
有人可以帮我这个忙吗?
最佳答案
链接到的答案是用于从服务器读取文件。他们只是从Web服务器请求文件。听起来您想从客户端读取文件(您正在使用FileUpload)。根据应用程序运行的堆栈以及所支持的客户端的不同,可以采用不同的方法。
GWT FileUpload只是表单上的输入控件,允许用户选择文件。它不执行实际文件读取的任何部分。
一种常见的方法是将文件作为HTML表单的一部分发送到服务器,然后将其反射回客户端,以将其放入Web应用程序。 This site有点老,但是很擅长为您提供这种方法的基础知识。在GWT中有几个使用它的示例:for example也链接到this。此选项具有最广泛的客户端支持,但会花费更多的网络流量。
如果您知道客户端支持HTML5,则还可以使用File API以JavaScript读取文件。 Here是Mozilla的一些文档。不幸的是,它并没有真正的集成GWT支持,因此您必须编写一些JavaScript。并非所有客户端都支持此选项,但不会生成任何网络流量。