我们正在使用来自gwt的文件上传,但我想通过拖放在浏览器中上传文件。它与Chrome浏览器工作正常,但不能与Firefox一起工作,因为在Chrome中它显示选择File和Firefox它显示浏览选项。如何通过拖放操作在Firefox浏览器中上传文件?
我们正在使用GWT 2.5.1和Smart Gwt 4.1。 我们可以拖放任何版本的chrome,但不能在任何版本的firefox浏览器中拖放。
代码段:
import com.google.gwt.core.client.EntryPoint;
import com.google.gwt.user.client.ui.FileUpload;
import com.google.gwt.user.client.ui.RootPanel;
import com.smartgwt.client.types.Alignment;
import com.smartgwt.client.widgets.Label;
import com.smartgwt.client.widgets.form.DynamicForm;
import com.smartgwt.client.widgets.form.fields.FileItem;
import com.smartgwt.client.widgets.form.fields.TextItem;
import com.smartgwt.client.widgets.layout.HLayout;
import com.smartgwt.client.widgets.layout.VLayout;
/**
* Entry point classes define <code>onModuleLoad()</code>.
*/
public class TestApp implements EntryPoint {
@Override
public void onModuleLoad() {
VLayout vTest=new VLayout();
vTest.setBackgroundColor("#D3D3D3");
VLayout fileVLayout = new VLayout(10);
fileVLayout.setAutoWidth();
fileVLayout.setAutoHeight();
fileVLayout.setPadding(10);
final DynamicForm form = new DynamicForm();
TextItem filename = new TextItem();
filename.setTitle("File Name");
TextItem uploader = new TextItem();
uploader.setTitle("uploader name");
uploader.setWrapTitle(false);
**// Smart GWT**
final FileItem uploadfile = new FileItem();
uploadfile.setTitle("File Item");
uploadfile.setAlign(Alignment.CENTER);
**// GWT**
final FileUpload fileTest = new FileUpload();
fileTest.setTitle("File Upload");
form.setItems(filename, uploader, uploadfile);
form.draw();
HLayout fileHLayout = new HLayout(10);
fileHLayout.setHeight(10);
Label fileNameStaticLabel = new Label();
fileNameStaticLabel.setContents("File Upload");
fileNameStaticLabel.setWrap(false);
fileNameStaticLabel.setHeight("25px");
fileNameStaticLabel.setAlign(Alignment.RIGHT);
fileVLayout.addMember(form);
fileHLayout.addMember(fileNameStaticLabel);
fileHLayout.addMember(fileTest);
vTest.addMember(fileVLayout);
vTest.addMember(fileHLayout);
RootPanel.get().add(vTest);
}
}
提前致谢。
答案 0 :(得分:1)
您已走上正轨,只需使用智能GWT代码替换原生GWT代码。
您正在将GWT与Smart GWT组件混合使用。根据{{3}},你不应该这样做。 &#34;原因是两个Ajax小部件工具包的最大程度有限制 (包括GWT)可以互操作......&#34;
Smart GWT有自己的文件选择器,请参阅http://forums.smartclient.com/showthread.php?t=8159#aMix(FileItem)。它也是自己的Canvas系统:不要使用GWT RootPanel,使用Smart GWT Canvas或VLayout等。
虽然Smart GWT有&#34; GWT&#34;在名称中,尽管它使用了GWT(GWT Compiler等)的大部分内容,但Smart GWT本身就是一个框架。除了极少数情况(例如登录页面)之外,不建议将Smart GWT与本机GWT混合使用。