反正 搞 EXT 很久了。 说 文件上传也很久了。 原来去 EXT 的论坛找了个 现成的组件,也很方便。 不过感觉 不适合小的需求。对用户来说,操作也不是很直观。
这回有时间,搞搞上传了。 去找了个半成品,改改还是OK 了。。。
先看图片吧。
上传文件 的 textfield ,添加了一个鼠标焦点事件。 点击的话,弹出上传窗口。
剩下就是上传文件的过程了, 用struts2 自带的上传组件。
贴贴关键代码吧:
logger.debug("++++++++"+uploadFileName);
if (uploadFileName.getBytes().length != uploadFileName.length()) {
uploadFileName=System.currentTimeMillis()+"";
}
this.savePath =Thread.currentThread().getContextClassLoader().getResource("").getPath();
savePath=savePath.substring(1, savePath.length()-16)+uploadFileName;
logger.debug(savePath);
File newPath = new File(savePath);
Tools.CopyFile(upload,newPath);
this.responseWrite("{\"success\":true,\"msgs\":'" +uploadFileName+ "'}");
logger.debug("{\"success\":true,\"msg\":\"" +uploadFileName+ "\"}");
return null;
在界面中,我们可以获取到 File 对象和上传的文件名称。 然后,就是你根据上传的的文件进行整理了。当然,这里还能根据 文件后缀进行过滤, 暂时没这样的要求,就没写判断。这里判断了一下中文文件名称。
要注意的是, struts2上传文件大小, 拦截器默认的是 2M 左右。 如果需要的话,可以自己在 sturts.xml 里面修改。
<constant name= "struts.multipart.maxSize" value="10242880"></constant>
前台界面,也没什么难度,都是很简单的控件,当然,我是抄袭别人的了(懒的快发霉了,不想发明轮子)。
主要的也就是这么一段:
var formUpload = new Ext.form.FormPanel({
baseCls: 'x-plain',
labelWidth: 80,
fileUpload:true,
defaultType: 'textfield',
items: [{
xtype: 'textfield',
fieldLabel: '文 件',
name: 'upload',
inputType: 'file',
allowBlank: false,
blankText: '请上传文件',
anchor: '90%'
}]
});
在这个过程中,发现一个奇怪的问题。就是上传完成以后,返回的json..
this.responseWrite("{\"success\":true,\"msgs\":'" +uploadFileName+ "'}");
代码里面就这样写的, 可是通过调试,前台多了一个 <per> 标签。 json一直报错,郁闷的很,后来 把这个东西给过滤了,还不知道为什么产生这个东西。
代码整理好了就发上来。。
分享到:
相关推荐
"EXT+Struts2"是一个常见的技术组合,用于构建企业级的Web应用程序,特别是涉及到文件上传功能时。EXT是一个强大的JavaScript库,它提供了丰富的用户界面组件和交互效果,而Struts2是Java EE平台上的一个MVC框架,...
在本文中,我们将深入探讨如何使用ExtJS(Ext)与Struts2.0框架整合,实现多文件上传功能。这是一个常见的需求,在Web应用中,用户可能需要上传多个文件,如图片、文档等。通过理解这一过程,开发者可以构建更强大、...
在本文中,我们将深入探讨如何使用Ext3.2与Struts框架实现文件上传功能,同时解决中文乱码问题。这两个技术结合在一起,可以为Web应用提供高效、稳定的文件上传解决方案。 首先,Ext3.2是一个JavaScript库,它提供...
用EXT+struts2+spring+hibernate做...另外因包太多无法上传,所以请大家自己在myeclipse里面加上spring和hibernate,struts2运行的jar包,jar列表请看根目录下面的txt文件。另外,不会使用的不要再后面骂人,很无趣的!
一个Ext3 + struts2 + mysql的程序,主要功能是做了一个员工考勤系统,程序采用ext + action + dao的分层结构。代码大概有3000行,功能包括基本的增删改查、头像上传、分页、拦截器等功能,还用ext做了部分前台,有...
标题"能运行的ExtJs+Struts2文件上传"表明这是一个实现了文件上传功能的示例项目。在ExtJs中,可以利用其提供的FileInput组件创建一个文件选择器,用户可以选择文件并提交到服务器。Struts2则在服务器端处理文件上传...
网上有些这样的例子,但是下了几个都没有跑起来,哎,希望那些发文章的人要发就发全的,别发个半生不熟的。... 现在自己整理了一个Struts2+ExtJS2实现文异步文件上传,没法上传图片无法看到效果,直接上源码吧。
7. 插件整合:Struts2的插件机制允许开发者添加更多的功能,比如上传文件、国际化支持等。 通过这个项目,开发者不仅可以学习到如何将这两者有效地整合,还可以了解到如何在实际项目中管理数据流、处理用户交互以及...
本文将详细介绍EXT与Struts2的结合使用,并通过标题和描述中的关键词,如“树”、“gridpanel”、“分页”、“文件上传”和“tabpanel”,深入探讨这些组件的应用。 EXT是一个强大的JavaScript库,它提供了丰富的...
标题 "Ext+struts2.1.6+spring2+hibernate3的jar包" 暗示了这是一个基于Java技术栈的Web应用程序开发框架集合。这个压缩包包含了一系列核心库,主要用于构建一个整合了Ext JS前端框架、Struts 2.1.6后端MVC框架、...
Extjs+struts实现文件上传 使用说明中的UploadfileAction.java中的代码要拷贝到一个JSP文件中并将url: '/rsgl/uploadfile.do',改为url: '/rsgl/jspcos.jsp',才可以正常上传
在本案例中,我们看到一个使用Ext JS 2.2进行登录实现的方法,结合了Struts2和JSON来处理用户输入和响应。以下是这个登录方法的详细解释: 1. **依赖库**: - `Commons-logging-1.0.4.jar`: Apache Commons ...
综上所述,此示例展示了一个使用Struts2、Ext JS 2.2和JSON进行用户登录的简单实现。用户通过登录页面提交表单,Struts2 Action处理请求并验证身份,然后通过JSON返回响应,最后在客户端进行相应的页面更新。
"ext struts2 swfupload 跨域文件上传"这个主题涉及到三个关键技术和概念:EXTJS(Ext JS)、Struts2以及SwfUpload,它们共同解决了Web应用中的跨域文件上传问题。 EXTJS是一种强大的JavaScript库,用于构建富...
在Struts2中,我们可以利用`Struts2`的`FileUpload interceptor`来处理文件上传。这个拦截器能够解析请求中的文件内容,并将其转换为`Action`类中的属性。在`Action`类中,我们可以定义一个或多个`File`类型的字段,...
1. **配置Struts2**:在struts.xml配置文件中,你需要定义一个专门处理文件上传的Action,设置接收文件的参数,并配置相应的拦截器。 2. **创建UploadDialog**:在ExtJS中,创建一个UploadDialog实例,配置其文件...
ExtJs4.2+Mysql+Struts2+Hibernate3实现分页...以上信息我都在项目里面注明了,因为这些内容的文件太大了,CSDN不允许上传,而且也很容易找到,只要按照我在项目内提示的内容去增加这些依赖文件这个项目就能正常运行。
在本文中,我们将深入探讨如何使用ExtJS 4与Struts2框架实现文件上传功能。ExtJS是一个强大的JavaScript库,提供了丰富的用户界面组件,而Struts2是Java Web开发中的一个MVC框架,用于处理后端业务逻辑。下面,我们...
- `<constant name="struts.multipart.maxSize" value="1000000000"/>`:设置文件上传的最大大小为1GB。 - `<package name="teaweb" extends="json-default" namespace="/">`:定义了一个名为`teaweb`的包,并继承...
Struts2.0 + Ext 实现的文件上传功能是一种常见的Web开发技术,它结合了Struts2框架的控制器层和Ext JavaScript库的前端组件。在Java Web应用中,文件上传通常用于用户向服务器提交文件,如图片、文档等。下面我们将...