`

EXT+Struct2文件上传出现异常

阅读更多
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就会出现文件下载的现象
为什么?
1
0
分享到:
评论
2 楼 atian25 2009-10-16  
^_^ +U
1 楼 peter2009 2009-10-15  
只能自立更生的解决问题了

在js脚本里加上

17 行
 enctype:'multipart/form-data', 

在JAVA脚本里

getResponse().setCharacterEncoding("UTF-8");
getResponse().setContentType("text/html");


就可以了

相关推荐

    Ext+struts+ibatis 完整项目

    【标题】"Ext+struts+ibatis 完整项目" 涉及的技术栈是Web开发中的经典组合,主要用于构建高效、可扩展的企业级应用。这个项目虽然规模不大,但包含了实现一个完整Web应用程序所需的关键组件和流程,是学习和理解这...

    ext+struts2

    "EXT+Struts2"是一个常见的技术组合,用于构建企业级的Web应用程序,特别是涉及到文件上传功能时。EXT是一个强大的JavaScript库,它提供了丰富的用户界面组件和交互效果,而Struts2是Java EE平台上的一个MVC框架,...

    ext+struts2的学生信息管理系统

    STRUTS2通过拦截器和配置文件实现了灵活的请求处理,支持多种视图技术,与EXT的集成尤为顺畅,能为前端提供强大的数据展示和交互支持。 学生信息管理系统是一个典型的业务管理系统,其主要功能包括班级管理、学生...

    Ext+Struts2多文件上传

    在本文中,我们将深入探讨如何使用ExtJS(Ext)与Struts2.0框架整合,实现多文件上传功能。这是一个常见的需求,在Web应用中,用户可能需要上传多个文件,如图片、文档等。通过理解这一过程,开发者可以构建更强大、...

    Ext3.2 + struts 文件上传实例

    在本文中,我们将深入探讨如何使用Ext3.2与Struts框架实现文件上传功能,同时解决中文乱码问题。这两个技术结合在一起,可以为Web应用提供高效、稳定的文件上传解决方案。 首先,Ext3.2是一个JavaScript库,它提供...

    Ext+struts2+spring+hibernate做的一个CRUD实例

    用EXT+struts2+spring+hibernate做...另外因包太多无法上传,所以请大家自己在myeclipse里面加上spring和hibernate,struts2运行的jar包,jar列表请看根目录下面的txt文件。另外,不会使用的不要再后面骂人,很无趣的!

    Ext+Struts2的学生成绩管理系统

    《基于Ext+Struts2的学生成绩管理系统详解》 在现代信息技术的推动下,教育领域的信息化管理已经成为不可或缺的一部分。学生成绩管理系统的构建,旨在提高教学管理效率,减轻教师的工作负担,为教学决策提供数据...

    Ext+struts学生管理系统

    【标题】"Ext+struts学生管理系统"是一个基于前端Ext框架和后端Struts框架的教育信息化管理系统。这个系统主要用于管理学生信息,实现数据的增删改查等基本功能,同时也可能包括成绩管理、课程安排等多种实用功能。...

    EXT+STRUTS2 经典例子

    5. **配置文件**:在 Struts2 的配置文件(struts.xml 或其他自定义命名的 XML 文件)中,需要定义 ACTION 类及其对应的 URL 映射,以及可能的 JSON 结果类型。 6. **EXT Store 和 Proxy**:EXT 的 Store 用于存储...

    能运行的ExtJs+Struts2文件上传

    标题"能运行的ExtJs+Struts2文件上传"表明这是一个实现了文件上传功能的示例项目。在ExtJs中,可以利用其提供的FileInput组件创建一个文件选择器,用户可以选择文件并提交到服务器。Struts2则在服务器端处理文件上传...

    ext+struts1.2图书管理系统

    此外,还可以学习到如何配置 Struts 的配置文件(struts-config.xml)以及EXT的配置文件,了解两者之间的数据传递方式。 通过对这个系统的学习,开发者不仅可以掌握 EXT 和 Struts1.2 的基本用法,还能深入理解如何将...

    GWT+EXT+STRUTS2+Eclipse完整范例.rar

    标题 "GWT+EXT+STRUTS2+Eclipse完整范例.rar" 提示我们这是一个包含一个集成开发环境Eclipse的项目,该项目集成了Google Web Toolkit (GWT), EXT JS 和Struts2框架。描述 "整合 GWT EXT STRUTS2 Eclipse 范例" 明确...

    Ext + struts2 + mysql

    一个Ext3 + struts2 + mysql的程序,主要功能是做了一个员工考勤系统,程序采用ext + action + dao的分层结构。代码大概有3000行,功能包括基本的增删改查、头像上传、分页、拦截器等功能,还用ext做了部分前台,有...

    ext+struts+spring小例子

    在IT行业中,EXT、Struts和Spring是三个非常重要的技术框架,它们分别专注于用户界面、MVC架构和依赖注入。这个“ext+struts+spring小例子”是一个整合这三个技术的示例项目,用于实现一个图书管理应用。下面将详细...

    Extjs+Struts2实现异步文件上传

    网上有些这样的例子,但是下了几个都没有跑起来,哎,希望那些发文章的人要发就发全的,别发个半生不熟的。... 现在自己整理了一个Struts2+ExtJS2实现文异步文件上传,没法上传图片无法看到效果,直接上源码吧。

    Ext+struts2项目

    7. 插件整合:Struts2的插件机制允许开发者添加更多的功能,比如上传文件、国际化支持等。 通过这个项目,开发者不仅可以学习到如何将这两者有效地整合,还可以了解到如何在实际项目中管理数据流、处理用户交互以及...

    一个ext+spring+hibernate+struts2做的系统

    标题中的“一个ext+spring+hibernate+struts2做的系统”指的是一个基于四大开源框架构建的企业级Java Web应用程序。这些框架分别是EXT JS(一个用于构建富客户端界面的JavaScript库)、Spring(一个全面的Java企业...

    ext + struts2 例子

    本文将详细介绍EXT与Struts2的结合使用,并通过标题和描述中的关键词,如“树”、“gridpanel”、“分页”、“文件上传”和“tabpanel”,深入探讨这些组件的应用。 EXT是一个强大的JavaScript库,它提供了丰富的...

    ext+struts2的集成实例

    本实例主要关注"ext+struts2"的集成,这是一种常见的Java Web开发组合,其中ext是一个强大的JavaScript库,用于构建富客户端应用,而Struts2是基于MVC设计模式的Java Web框架,负责后端业务逻辑处理和页面展示的组织...

    ext+struts2整合实现登陆

    在IT行业中,Web开发是一个重要的领域,而Struts2和EXT是两个常用的技术框架。本文将详细介绍如何将它们整合以实现一个登录功能。 Struts2是一个基于MVC(Model-View-Controller)设计模式的Java Web框架,它极大地...

Global site tag (gtag.js) - Google Analytics