0

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

@UiHandler("calculateComplexityButton")
    void onClickCalculateComplexity(ClickEvent e){
        formPanel.submit();
        //How do I get the inputStream back to here????
        presenter.getTask(inputStream);
    }

我的问题是如何从服务器上获取 inputStream?我尝试对所有这些使用 RPC 调用,但是当我尝试获取 inputStream 时,我没有从服务器上拉出任何东西。我试过了:

inputStream = request.getInputStream();

但它似乎是空的。对此有什么想法吗?

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

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

1 回答 1

1

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

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

因此,当您执行 form.submit() 时,它会将您的文件发送到 Action(Servlet)。在服务器端,您可以使用 lib 形式的 apache ( commons-fileupload )。你有很多不同的方式来获取你的文件,你可以保存在磁盘上,在内存中读取......

于 2011-12-07T17:36:11.980 回答