ExtJS上传组件中FormPanel能很方便的实现上传。再项目中对单个文件上传实践起来比较的简单
下面是我用这个控件的部分提起出来的部分代码:
<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<base href="<%=basePath%>">
<title>文件上传</title>
<link rel="stylesheet" type="text/css" href="./upload/extjs/resources/css/ext-all.css">
<link rel="stylesheet" type="text/css" href="./upload/extjs/UploadDialog/css/Ext.ux.UploadDialog.css">
<script type="text/javascript" src="./upload/extjs/ext-base.js"></script>
<script type="text/javascript" src="./upload/extjs/ext-all.js"></script>
<script type="text/javascript" src="./upload/extjs/ext-lang-zh_CN.js"></script>
<script type="text/javascript" src="./upload/extjs/UploadDialog/UploadDialog.js"></script>
</head>
<body>
<script type="text/javascript">
var uploadForm = new Ext.form.FormPanel({
id:'upload_form',
labelAlign:'right',
frame:true,
height:100,
width:380,
fileUpload:true,
items:[{
id:'fileUploadPath',
xtype:'textfield',
width:260,
height:20,
fieldLabel:'上传文件',
name:'files', //长传文件名称
inputType:'file'
}],
buttons:[{
text:'导入',
handler:function(){
var path = Ext.getCmp('fileUploadPath').getValue();
//path = './json/upload_filesUpload.action?files=' + path;
//path = path.replace(/\\/g,'$');
if(uploadForm.getForm().isValid()){
//uploadForm.getForm().url = path;
uploadForm.getForm().url = './json/upload_filesUpload.action';
uploadForm.getForm().submit({
waitMsg: '请稍等...',
//ajax请求
success:function(){
/*
var conn = new Ext.data.Connection();
conn.request({// 发送异步请求
url : './Food/foodSchool_importReport.action',
method : 'POST',//注意大写
params : {
'path' : path
},
success : function(rsp, opt) {
//导入成功后,利用AJAX执行另一个方法读取excel文件,并显示到页面上
//......
},
failure : function(rsp, opt) {
Ext.Msg.alert('异常', '导入失败,请重新选择Excel文件!');
}
});
win2.hide();
*/
Ext.Msg.alert('提示','上传成功! ');
win2.hide();
},
failure:function(){
Ext.Msg.alert('提示','导入失败!');
}
});
}
}
}]
});
var btn2 = new Ext.Button({
text:'按钮形式导入',
handler:function(){
win2 = new Ext.Window({
id:'uploadFile2',
title:'选择导入的文件',
modal:true,
width:400,
height:150,
closeAction:'hide',
layout:'fit',
resizable:false,
items:uploadForm
});
win2.show();
}
});
Ext.onReady(function() {
var viewport = new Ext.Viewport({
//layout : 'border',
split : true,
items:[btn2]
});
})
</script>
</body>
</html>
后台代码的时间请参照我之前写的一片文章,那里有详细的说明。
http://lizhenbin2010.iteye.com/blog/1136611