GWT —文件上传(导入)

原创 2016年08月31日 16:13:16

GWT 2.8版本出来啦,正在学习的伙伴们可以试试哈大笑


项目中文件上传(导入)功能是很常见的,那么在GWT项目中,如何实现呢?最近刚刚做了这个功能:

核心代码如下:

import com.google.gwt.user.client.ui.FileUpload;
import com.google.gwt.user.client.ui.FormPanel;
import com.google.gwt.user.client.ui.FormPanel.SubmitCompleteEvent;
import com.google.gwt.user.client.ui.FormPanel.SubmitCompleteHandler;
import com.google.gwt.user.client.ui.FormPanel.SubmitEvent;
import com.google.gwt.user.client.ui.FormPanel.SubmitHandler;
import com.smartgwt.client.util.SC;
import com.smartgwt.client.widgets.Dialog;
import com.smartgwt.client.widgets.IButton;
import com.smartgwt.client.widgets.events.ClickEvent;
import com.smartgwt.client.widgets.events.ClickHandler;


/**
 * <pre>
 * 导入通用类
 * 使用方法:
 * 1,继承此类通过super(...) 传入指定参数
 * 2,实现uploadResult(msg)方法,msg 表示上传过后的响应结果格式根据后台响应数据进行处理即可
 * 
 * @author CFM
 * </pre>
 */
public abstract class ExcelUpload extends Dialog {
	String title;
	
	/**
	 * 实例
	 * @param title
	 * @param actionURL
	 */
	public ExcelUpload(String title,String actionURL) {
		setWidth(550);
		setHeight(300);
		centerInPage();
		setIsModal(true);
		// setShowFooter(true);
		setShowMinimizeButton(false);
		//setImage("t_excel", "silk/page_excel.png");
		if(null==title||title.equals("")){
			setTitle("EXCEL导入");
		}else{
			setTitle(title);
		}


		final IButton uploadbutton = new IButton("导入");
		final FileUpload fileUpload = new FileUpload();
		final FormPanel formpanel = new FormPanel();
		fileUpload.setName("uploadFormElement");


		formpanel.setEncoding(FormPanel.ENCODING_MULTIPART);
		formpanel.setMethod(FormPanel.METHOD_POST);
		formpanel.setAction(actionURL);
		formpanel.setWidget(fileUpload);


		uploadbutton.setIcon("silk/page_go.png");
		uploadbutton.addClickHandler(new ClickHandler() {
			public void onClick(ClickEvent sender) {
				if (fileUpload.getFilename().length() == 0) {
					SC.warn("请选择您要导入的文件");
					return;
				}
				if (!fileUpload.getFilename().contains(".xls")) {
					SC.warn("文件格式不对(必须是excel文件)");
					return;
				}
				formpanel.submit();
			}
		});
		formpanel.addSubmitHandler(new SubmitHandler() {
			@Override
			public void onSubmit(SubmitEvent event) {
				uploadbutton.setTitle("导入中...");
				uploadbutton.disable();
			}
		});
		formpanel.addSubmitCompleteHandler(new SubmitCompleteHandler() {
			public void onSubmitComplete(SubmitCompleteEvent event) {
				destroy();
				uploadResult(event.getResults());
			}
		});
		addItem(formpanel);
		addItem(uploadbutton);
	}


	/**
	 * Fired when a file has been submitted successfully.
	 * @param rst
	 */
	public abstract void uploadResult(String rst);
}


继承使用:


public class ExcelImport extends ExcelUpload {

	public ExcelImport() {
		super("Excel导入","XXX/order/fileupload");
		
	}

	@Override
	public void uploadResult(String rst) {
		SC.say("导入结果:" + rst);
	}
}


调用:

new ExcelImport().show();


是不是很简单啦。。。收工!



版权声明:本文为博主原创文章,未经博主允许不得转载。

GWT 实现文件上传和下载

上星期老师叫我学写一个fileupload 和 download ,琢磨了很久~~ 代码网上很多,关键跑出来有效果 是很纠结人的。。整理一下吧。upload:(推荐一本书 《Google Web To...
  • rptotal
  • rptotal
  • 2011年02月28日 16:41
  • 6846

使用eclipse引入gwt例程

  • caolei_kunming
  • caolei_kunming
  • 2010年03月31日 16:27
  • 1243

Gwt延迟绑定介绍

Gwt的延迟绑定是一种gwt对反射机制的一种支持方案。简单的说就是在使用gwt进行代码开发的时候,可以使用接口和抽象类,而不用管它的实现,在编译后或者host模式的情况下,gwt会自己跟模块配置的信息...
  • u010419967
  • u010419967
  • 2014年12月25日 16:42
  • 452

IntelliJ IDEA 13操作-- 4.开发简单GWT项目

1.新建工程
  • orangesdk
  • orangesdk
  • 2014年08月20日 10:26
  • 3218

GWT开发效率困境与解决之道

GWT开发效率困境与解决之道GWT初学的人员都觉得GWT学习曲线高,开发慢,你可能一气之下把这个IDE给扔掉冲动。根据以往的GWT培训来看,GWT的开发效率主要集中在以下几点:编译时间过长 – 每修...
  • applebomb
  • applebomb
  • 2016年09月06日 11:25
  • 1022

vaadin 7 使用gwt 发布js和css

vaadin 7 提供了注解的方式 发布 js 和css  如下,但是这种方式 需要打开这个控件所在的页面 才会把对应js 和css发布出来  @JavaScript({"ext-all.js","...
  • lrylrq1991
  • lrylrq1991
  • 2016年03月11日 05:39
  • 397

GWT MVP 学习笔记

GWT MVP 学习笔记   在GWT的在线文档中只看 《GWT Development with Activities and Places》就可以了,这是2.1中新推出的做法,结合考虑了浏览器的...
  • u010419967
  • u010419967
  • 2014年12月26日 12:34
  • 906

有空 要研究GWT

以下资料转自百度百科:http://baike.baidu.com/view/358878.htm?fr=ala0_1 供个人他日学历参考GWT-产品概述  如今,编写网络应用程序是一个单调乏味且易于...
  • hlantian
  • hlantian
  • 2010年03月01日 11:18
  • 429

GWT 学习总结

最近领导让研究GWT,学习这个AJAX框架,看看对我们的系统能否集成进去,花了1周多时间研究啊。照葫芦画瓢,做了一个Demo,对这个框架也有了一个初步的认识, 感觉就是一个Web的 SWT。    ...
  • u010419967
  • u010419967
  • 2014年07月26日 15:45
  • 1489

GWT UiBinder部分官方介绍的翻译

页面来源:http://code.google.com/intl/zh-CN/webtoolkit/doc/latest/DevGuideUiBinder.html 随便硬译的,没有检查,没有修改。...
  • charlv
  • charlv
  • 2011年08月16日 15:11
  • 4046
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:GWT —文件上传(导入)
举报原因:
原因补充:

(最多只允许输入30个字)