2014-10-30 2 views
1

Мы используем загрузку файлов из gwt, но я хочу загрузить файл, перетащив его в браузере. Он отлично работает с браузером Chrome, но не работает с Firefox, потому что в Chrome он отображает файл «Файл» и «Firefox», на котором отображается опция «Обзор». Как загрузить файл в браузере Firefox с помощью перетаскивания?Загрузите файл с помощью перетаскивания на кнопку «Обзор» в браузере

Мы используем GWT 2.5.1 и Smart Gwt 4.1. Мы могли бы сделать перетаскивание любой версии хром, но не в любой версии браузера 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

Слишком мало информации для нас, чтобы ответить на ваш вопрос. Какая версия gwt? Версии браузера? Какие компоненты вы используете? Какой-то код? – Charmin

+0

Здравствуйте @Charmin, я добавил код и требуемую информацию, пожалуйста, просмотрите мой вышеприведенный запрос. – majji

ответ

1

Вы на правильном пути, просто замените собственный код GWT кодом Smart GWT.

Вы смешиваете GWT с компонентами Smart GWT. Вы не должны этого делать, за http://forums.smartclient.com/showthread.php?t=8159#aMix. «Причина этого заключается в том, что существует пределы максимальной степени, что два Ajax виджет комплекты (включая GWT) может взаимодействовать ...»

Смарт GWT имеет свой собственный выбор файлов см http://www.smartclient.com/smartgwtee/javadoc/index.html?overview-summary.html (FileItem). А также это собственная система Canvas: не используйте GWT RootPanel, используйте Smart GWT Canvas или VLayout и т. Д.

Хотя Smart GWT имеет «GWT» в названии, и хотя он использует значительную часть GWT (GWT Compiler, и т. д.), Smart GWT действительно является основой для себя. Помимо редких случаев (например, страницы входа), не рекомендуется смешивать Smart GWT с собственным GWT.

Смежные вопросы