Action类代码为
public String readexcel() throws Exception {
String path = getRealyPath(uploaddir);
File dir = new File(path);
if (!dir.exists()) {
dir.mkdir();
}
int length = excelfileFileName.length();
int start = excelfileFileName.indexOf('.');
if (!excelfileFileName.substring(start+1, length).equalsIgnoreCase("xls")) {
//String msg = "{\"success\":false,\"file\":'wrongfileaaa文件错误'}";
String a = "aaa文件错误";
String msg = "{\"success\":true,\"msgs\":'" +a+ "'}";
getResponse().setCharacterEncoding("UTF-8");
//getResponse().setContentType("html/text");
getResponse().getWriter().write(msg);
return null;
}else{
BufferedInputStream bis = null;
try {
FileInputStream fis = new FileInputStream(excelfile);
bis = new BufferedInputStream(fis);
Workbook book = Workbook.getWorkbook(bis);
Sheet sheet = book.getSheet(0);
int cols = sheet.getColumns();
int rows = sheet.getRows();
List<String[]> list = new ArrayList<String[]>();
for (int j = 0; j < rows; j++) {
String [] strs = new String[cols];
for (int i = 0; i < cols; i++) {
strs[i] = sheet.getCell(i,j).getContents();
}
list.add(strs);
}
StaffBindDao staff = new StaffBindDao();
//staff.addinfo(tablename, list);
} catch (Exception e) {
e.printStackTrace();
}finally{
try {
if (bis!=null) {
bis.close();
}
} catch (Exception e) {
e.printStackTrace();
}
}
System.out.println("sssssssssssssssssss");
String msg = "{success:true, file:'a"+excelfileFileName+"!'}";
getResponse().getWriter().write(msg);
return null;
}
}
js代码为
Ext.BLANK_IMAGE_URL = "/abcd/ext/resources/images/s.gif";
Ext.form.Field.prototype.msgTarget = 'side';
Ext.QuickTips.init();
Ext.onReady(function(){
var msg = function(title, msg){
Ext.Msg.show({
title: title,
msg: msg,
minWidth: 200,
modal: true,
icon: Ext.Msg.INFO,
buttons: Ext.Msg.OK
});
};
var _form = new Ext.FormPanel({
fileUpload: true,
width: 485,
height:285,
frame: true,
autoHeight: true,
bodyStyle: 'padding: 10px 10px 0 10px;',
labelWidth: 50,
defaults: {
anchor: '95%',
allowBlank: false,
msgTarget: 'side'
},
items: [{
xtype: 'textfield',
emptyText: '请填写要插入数据表名称',
blankText: '数据表名称为必填写项',
fieldLabel: '数据表',
name:'tablename'
},{
xtype: 'fileuploadfield',
id: 'form-file',
emptyText: '请选择文件',
blankText: '必须上传文件',
fieldLabel: '文件',
name: 'excelfile',
buttonCfg: {
text: '',
iconCls: 'upload-icon'
}
}],
buttons: [{
text: '上传',
handler: function(){
if(_form.getForm().isValid()){
_form.getForm().submit({
url: 'back/ReadExcelaction_readexcel.action',
//url:'result.jsp',
waitMsg: '文件正在上传',
success: function(_form, o){
msg('系统提示', '文件内容已被成功加载'+o.result.file);
},
failure:function(_form,o){
msg('系统提示', '文件内容已被成功加载'+o.result.file);
if(o.result.file=='wrongfile')
{
msg('系统提示', '文件类型不正确!');
return;
}
}
});
}
}
},{
text: '取消',
handler: function(){
_form.getForm().reset();
}
}]
});
function test(){
myform.form.submit();
}
var window = new Ext.Window({
title:'Excel 文件的上传',
width:500,
height:143,
items:[_form]
});
window.show();
});
XML配置文件
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE struts PUBLIC
"-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"
"http://struts.apache.org/dtds/struts-2.0.dtd">
<struts>
<package name="back" extends="struts-default" namespace="/back">
<action name="*action_*" class="com.jws.action.{1}Action" method="{2}">
<!-- 文件上传 拦截器-->
<!--
<interceptor-ref name="defaultStack">
<param name="fileUpload.maximumSize">102400000</param>
</interceptor-ref>
<result name="test">index.jsp</result>
-->
<param name="uploaddir">/WEB-INF/UploadFiles</param>
<result name="test">../index.jsp</result>
</action>
</package>
</struts>
文件成功上传后
发现一个奇怪的问题。就是上传完成以后,返回的json..
this.responseWrite("{\"success\":true,\"msgs\":'" +uploadFileName+ "'}");
代码里面就这样写的, 可是通过调试,前台多了一个 <per> 标签。 json一直报错,郁闷的很,不知道为什么产生这个东西。
如果设置Response的contentType的话 FF就会出现文件下载的现象
为什么?
分享到:
相关推荐
Ext+struts+ibatis 完整项目 项目虽小五脏俱全
ext结合struts2.0实现文件上传,代码详细,加载项目即可以看到效果。
ext+struts2 是实现文件上传。源码,很好的列子,请大家放心下载。
文件上传一直是Ext3.0以上版本的难点,本实例利用Ext3.2和struts实现文件和参数的共同上传,并解决了中文乱码的问题。
ext+struts+spring图书管理的小例子 欢迎下载
用EXT+struts2+spring+hibernate做...另外因包太多无法上传,所以请大家自己在myeclipse里面加上spring和hibernate,struts2运行的jar包,jar列表请看根目录下面的txt文件。另外,不会使用的不要再后面骂人,很无趣的!
ext+struts2整合实现登陆,源码加注释。
ext+struts2的集成实例.............
Ext+Struts2的学生成绩管理系统,希望对Ext学习者有帮助。
ext+struts2+json登陆方法.pdf
ext+struts2+json登陆方法借鉴.pdf
一个Ext3 + struts2 + mysql的程序,主要功能是做了一个员工考勤系统,程序采用ext + action + dao的分层结构。代码大概有3000行,功能包括基本的增删改查、头像上传、分页、拦截器等功能,还用ext做了部分前台,有...
ext+struts1.2图书管理系统让你了解ext框架以及与struts1.2的整合
网上有些这样的例子,但是下了几个都没有跑起来,哎,希望那些发文章的人要发就发全的,别发个半生不熟的。... 现在自己整理了一个Struts2+ExtJS2实现文异步文件上传,没法上传图片无法看到效果,直接上源码吧。
Ext+struts Ext学生管理系统 Ext与后台交互 Ext与数据库交互《深入浅出》中的最后一个例子
EXT + DWR + Struts + Hibernate + Spring Demo
一个基于Ext+Struts2+spring实现的级联分页示例程序源码例子
EXT+Struts1+spring2+hibernate3学籍管理系统,jar由于太大了,发不上来,所以只有源码,加数据库的代码。
Ext + Gwt + Struts2.0 介绍完了各自技术的实现,使用 google plugin 创建一个与struts2.0互通的实例。
利用ext3+struts2+hibernate+spring的CRUD+分页这四个框架实现crud,详细说明grid的用法,