GWT —文件上传(导入)

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();


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



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值