2

是否可以通过请求工厂上传文件?简单的例子将非常有帮助。

4

3 回答 3

7

其实你可以!,我已经有一个应用程序在做。

  1. 您需要支持FileApi的浏览器(现代浏览器需要)
  2. 您必须编写一些 jsni 代码才能将文件内容读入 base64 字符串。
  3. 您将(异步)接收到一个字符串,您可以将其分配给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 RPCRequest Factory感觉是XMLHttpRequest,它不允许您encodelocal文件发送到server.

您需要编写自己的servlet和 GWT FormPanel

此处的完整示例servlet及其mapping

于 2013-04-10T15:10:48.430 回答