是否可以通过请求工厂上传文件?简单的例子将非常有帮助。
问问题
767 次
3 回答
7
其实你可以!,我已经有一个应用程序在做。
- 您需要支持FileApi的浏览器(现代浏览器需要)
- 您必须编写一些 jsni 代码才能将文件内容读入 base64 字符串。
- 您将(异步)接收到一个字符串,您可以将其分配给
Bean
应用程序中的任何属性并通过 RF、RPC 等发送。
在这里,您可以复制/粘贴我使用的最重要的代码:
public final native void readAsDataURL(MyClass that, FileUpload input) /*-{
var files = input.@com.google.gwt.user.client.ui.FileUpload::getElement()().files;
var reader = new FileReader();
reader.onload = function (evt) {
that.@...MyClass::done(Ljava/lang/String;)(evt.target.result);
}
reader.readAsDataURL(files[0]);
}-*/;
这将是我的gwtupload库中即将推出的功能。
于 2013-04-10T16:42:09.070 回答
0
不。
您需要创建一个单独的文件上传 servlet。请参阅GWT 中的基本文件上传。
于 2013-04-10T14:54:29.640 回答
-1
IMO RPC
或Request Factory
感觉是XMLHttpRequest
,它不允许您encode
将local
文件发送到server
.
您需要编写自己的servlet
和 GWT FormPanel
。
此处的完整示例servlet
及其mapping
于 2013-04-10T15:10:48.430 回答