gwt-ext文件上传

时间:2008-12-05 17:20:01

标签: file-upload gwt-ext

我正在尝试从gwt-ext上传文件,而不会打开对话框。为此,我创建了一个FormPanel并为其添加了适当的字段。然后做了一个form.submit()。这似乎不起作用。知道为什么吗?代码如下所示。

final FormPanel uploadForm = new FormPanel();
uploadForm.setVisible(false);
uploadForm.setFileUpload(true);
final TextField sourceFile = new TextField("File", "sourceFile");
sourceFile.setVisible(false);
sourceFile.setInputType("file");
sourceFile.setValue("/tmp/test.txt");

final TextField targetFile = new TextField("Upload As", "targetFile");
targetFile.setVisible(false);
targetFile.setValue("different.txt");

uploadForm.add(sourceFile);
uploadForm.add(targetFile);

final String url = GWT.getModuleBaseURL() + "/uploadFile";
uploadForm.getForm().submit(url, null, Connection.POST, null, false);

我用一个简单的html表单测试了服务器端的servlet,它运行正常。只有GWT-EXT版本似乎不起作用。

2 个答案:

答案 0 :(得分:0)

我发现为什么上面的代码无效。这里的主要问题是,如果尚未呈现上载表单和/或在用户单击提交按钮后表单已被修改,则由于安全原因浏览器会阻止文件上载。如果浏览器确实允许这样的事情,那么系统上的任何文件都可以在用户不知情的情况下轻松上传。

解决上述问题的方法是打开对话框,在提交按钮的事件处理程序中进行上传,并在表单侦听器的onActionComplete方法中进行任何其他处理。

答案 1 :(得分:0)

没有对话框上传的整个想法对我来说似乎是一个安全漏洞。我可以想象一个应用程序在打开时窃取密码文件,如果只有上述可能的话。