GWT文件上传没有发送提交请求

时间:2012-12-20 13:51:22

标签: gwt file-upload

GWT 2.5.0 DevMode

我在下面的file upload进行了简单的测试,

startupUrl:http://127.0.0.1:8888/UploadTest.html?gwt.codesvr=127.0.0.1:9997

<g:FormPanel ui:field="fpUpload">
    <g:VerticalPanel>
        <g:FileUpload name="fileData" ui:field="fuUpload" />
        <g:Button ui:field="btUpload">Upload</g:Button>
    </g:VerticalPanel>
</g:FormPanel>
@UiHandler("btUpload")
public void onClickUploadButton(ClickEvent e) {
    System.out.println("fileName:" + fuUpload.getFilename());
    fpUpload.setEncoding(FormPanel.ENCODING_MULTIPART);
    fpUpload.setMethod(FormPanel.METHOD_POST);
    fpUpload.setAction("/files");
    fpUpload.submit();
    System.out.println("Submitted, please wait!");
}

@UiHandler("fpUpload")
public void onSubmitComplete(SubmitCompleteEvent event) {
    System.out.println("Submit completed!");
}

输出:

fileName:C:\fakepath\one_file_chosen_to_upload
Submitted, please wait!

但是,服务器没有收到submit request,所以“提交已完成!”从未出现过。

与此同时,流量被窥探,submit request根本没有发送。

$ tcpdump -A -i lo port 8888

也没有抛出异常。有什么想法吗?

@EDIT

问题可在ProdMode上重现。

@EDIT 2

仅仅重新启动机器后,现在问题似乎就像http submit request被忽略而无线发出一样无声。不幸的是,我没有线索原因。

1 个答案:

答案 0 :(得分:1)

您似乎没有编写适当的servlet来处理多部分请求,您还必须在web.xml中配置该servlet。您可以在问题中添加您的servlet代码和web.xml的内容吗?

请注意,如果服务器返回404,则不会执行onSubmitComplete。尝试使用Firebug检查服务器响应,或者通过任何操作更改表单操作,以便同样失败。

仅供参考,有一个图书馆:gwtupload非常容易使用且有很多不错的功能,也许您可​​以查看他们的example页面并尝试一下。