如何使用fileUploader和GWT2.4从服务器检索inputStream?

如何使用fileUploader和GWT2.4从服务器检索inputStream?,gwt,mvp,inputstream,gwt-2.4,Gwt,Mvp,Inputstream,Gwt 2.4,我有一个fileUploader小部件,用于选择xml文件。然后,我有一个按钮,当用户提交所选文件时,该按钮在viewImpl类中调用我的处理程序。如果我理解正确,从那里我从formPanel进行提交,文件就在服务器上 @UiHandler("calculateComplexityButton") void onClickCalculateComplexity(ClickEvent e){ formPanel.submit(); //How do I ge

我有一个fileUploader小部件,用于选择xml文件。然后,我有一个按钮,当用户提交所选文件时,该按钮在viewImpl类中调用我的处理程序。如果我理解正确,从那里我从formPanel进行提交,文件就在服务器上

@UiHandler("calculateComplexityButton")
    void onClickCalculateComplexity(ClickEvent e){
        formPanel.submit();
        //How do I get the inputStream back to here????
        presenter.getTask(inputStream);
    }
我的问题是如何从服务器上获取输入流?我尝试使用RPC调用来实现所有这些,但是当我尝试获取inputStream时,我并没有从服务器上获取任何东西。我试过:

inputStream = request.getInputStream();
但它似乎是空的。有什么想法吗

我删除了RPC代码,并使用了一个简单的HTTPRequest。这使我进入servlet,但请求没有文件流。当我到达代码中的这一行时:

FileItemIterator iter = upload.getItemIterator(request); //Nothing is here in iter.

您不能通过RPC进行上传,这就是为什么您必须将表单提交到servlet的原因

final FormPanel form = new FormPanel();
form.setEncoding(FormPanel.ENCODING_MULTIPART);
form.setMethod(FormPanel.METHOD_POST);
form.setAction("/upload");

因此,当您执行form.submit()时,它会将您的文件发送到操作(Servlet)。在服务器端,您可以使用lib表单apache()。您有许多不同的方式获取文件,您可以保存在磁盘上,读取在内存中……

您在服务器端使用Java吗?是的。我以为我已经弄明白了。我正在使用对扩展RemoteServiceServlet的serviceImplServlet的RPC服务调用。我可以很好地使用servlet,但是获取fileUploader创建并放在服务器上的inputStream似乎不起作用,我不知道如何做到这一点?我没有使用RPC进行文件上载,我使用RPC来获取RemoteServiceServlet实现,并且从那里我尝试获取文件流。但是我没有设置表单操作,所以我必须使用HTTPServlet将inputStream从服务器上拉回来?好的,但是我在请求中没有看到任何内容。uploader小部件是否为上传的文件设置了属性?您必须设置
fileUpload.setName(“myFile”)
。然后,当您提交表单时,它将添加myFile属性。此外,您的文件上载必须采用类似
formPanel.add(fileUpload)
的格式,但我想您知道这一点。你在用firebug查看请求吗?这就是我所缺少的。我正在使用Firebug,但网络面板未启用。现在代码开始工作了!非常感谢你的帮助!