原文:http://hi.baidu.com/freespace520/blog/item/d789b40f2a6564226159f308.html/cmtid/54e0593169838aa35fdf0ed1
的插件部件,过滤下边的几种文件格式(jpg..)只有这几种格式才可以上传
//文件上传
var upload =new Ext.Button({
text:'文件上传',
iconCls:'icon-upload',
listeners:{
click:function(btnThis,eventobj){
if(fondsId!=''){
dialog = new Ext.ux.UploadDialog.Dialog({
autoCreate: true,
closable: true,
collapsible: false,
draggable: true,
minWidth: 400,
minHeight: 200,
width: 400,
height: 350,
permitted_extensions:
['JPG','jpg','jpeg','JPEG','GIF','gif','pdf','txt','zip','ZIP','doc','DOC'],
proxyDrag: true,
resizable: true,
constraintoviewport: true,
title: '文件上传',
url: '/as3/mount/upload_file.action',
reset_on_hide: false,
allow_close_on_upload: true
});
dialog.show();
}else{
Ext.Msg.alert('提示','请先选择一个***再上传文件');
}
}
}
});
struts2 action 部分
因为在EXT中已经过滤了格式,所以在annotation的allowedTypes中就不用再写了,此该再重新设置是为了如
果在JSP页面时上传文件时用.
@InterceptorRef(value="fileUpload")
为struts2 的上传过滤器,因为在struts2的默认配置文件中没有配置此过滤器,所以用到上传一定要自己手
动再配置上.
@InterceptorRef(value="defaultStack")
struts2 的默认过滤器栈,一定要配置在上传过滤器的后边
再看下action 中的三个属性, file ,fileFileName,fileContentType; 是一定要配置的三个属性:文件
,文件名,文件类型;
file 不能更改,
fileFileName 可以根据自己页面的属性名自己修改,但是一定要有fileName,比如JSP页面<input
type='text' name="abc" value="文件名">
那么在action 中定义文件名属性时一定要叫abcFileName;
fileFileContentType 雷同;
更多细节请查看 apache: common-fileupload 子项目
@InterceptorRefs({@InterceptorRef(value="fileUpload", params=
{"allowedTypes","image/bmp,image/PNG,image/gif,image/JPEG,image/JPG,image/jpg,application/x-
zip-compressed","maximumSize","20971520"}
),@InterceptorRef(value="defaultStack")})
@SuppressWarnings("serial")
public class UploadFileAction extends ActionSupport {
private File file;
private String fileFileName;
private String fileContentType;
public String getFileContentType() {
return fileContentType;
}
public void setFileContentType(String fileContentType) {
this.fileContentType = fileContentType;
}
public String getFileFileName() {
return fileFileName;
}
public void setFileFileName(String fileFileName) {
this.fileFileName = fileFileName;
}
public void setFile(File file) {
this.file = file;
}
public File getFile(){
return file;
}
public String execute(){
System.out.println("begin upload file.... ");
LinkPath link = LinkPath.newInstance();
String dataPath = link.getdataPath();
DateFormat format = new SimpleDateFormat("yyyyMMddHHmm");
Date date=new Date();
String dateDir = format.format(date);
File f = new File(dataPath+"\\"+dateDir);
if(!f.exists()){
f.mkdirs();
}
File dataFile = new File(dataPath+"\\"+dateDir+"\\"+this.getFileFileName());
try {
//将第一个参数对应的 文件 copy 到 第二个参数对应的文件中
FileUtil.copyFile(this.file,dataFile);
if(dataFile.exists()){
String fileType = dataFile.getPath().substring
(dataFile.getPath().lastIndexOf("."),dataFile.getPath().length());
if(".zip".equals(fileType)||".ZIP".equals(fileType)){
UpZIP zip = new UpZIP();
zip.unzip(dataFile.getPath(), dataPath+"\\"+dateDir);
dataFile.delete();
}
}
Struts2Utils.renderText("{success:true,message:'上传成功'}");
} catch (IOException e) {
Struts2Utils.renderText("{success:flase,message:'失败'}");
e.printStackTrace();
}
return null;
}
}
分享到:
相关推荐
在本文中,我们将深入探讨如何使用ExtJS(Ext)与Struts2.0框架整合,实现多文件上传功能。这是一个常见的需求,在Web应用中,用户可能需要上传多个文件,如图片、文档等。通过理解这一过程,开发者可以构建更强大、...
【标题】"Ext+struts+ibatis 完整项目" 涉及的技术栈是Web开发中的经典组合,主要用于构建高效、可扩展的企业级应用。这个项目虽然规模不大,但包含了实现一个完整Web应用程序所需的关键组件和流程,是学习和理解这...
STRUTS2通过拦截器和配置文件实现了灵活的请求处理,支持多种视图技术,与EXT的集成尤为顺畅,能为前端提供强大的数据展示和交互支持。 学生信息管理系统是一个典型的业务管理系统,其主要功能包括班级管理、学生...
"EXT+Struts2"是一个常见的技术组合,用于构建企业级的Web应用程序,特别是涉及到文件上传功能时。EXT是一个强大的JavaScript库,它提供了丰富的用户界面组件和交互效果,而Struts2是Java EE平台上的一个MVC框架,...
在"struts+extjs实现UploadDialog"这个主题中,我们主要讨论如何利用Struts和ExtJS来创建一个文件上传对话框。UploadDialog通常是一个交互式的用户界面,允许用户选择本地文件并将其上传到服务器。 首先,让我们从...
用EXT+struts2+spring+hibernate做...另外因包太多无法上传,所以请大家自己在myeclipse里面加上spring和hibernate,struts2运行的jar包,jar列表请看根目录下面的txt文件。另外,不会使用的不要再后面骂人,很无趣的!
【标题】"Ext+struts学生管理系统"是一个基于前端Ext框架和后端Struts框架的教育信息化管理系统。这个系统主要用于管理学生信息,实现数据的增删改查等基本功能,同时也可能包括成绩管理、课程安排等多种实用功能。...
《基于Ext+Struts2的学生成绩管理系统详解》 在现代信息技术的推动下,教育领域的信息化管理已经成为不可或缺的一部分。学生成绩管理系统的构建,旨在提高教学管理效率,减轻教师的工作负担,为教学决策提供数据...
网上有些这样的例子,但是下了几个都没有跑起来,哎,希望那些发文章的人要发就发全的,别发个半生不熟的。... 现在自己整理了一个Struts2+ExtJS2实现文异步文件上传,没法上传图片无法看到效果,直接上源码吧。
在本文中,我们将深入探讨如何使用Ext3.2与Struts框架实现文件上传功能,同时解决中文乱码问题。这两个技术结合在一起,可以为Web应用提供高效、稳定的文件上传解决方案。 首先,Ext3.2是一个JavaScript库,它提供...
5. **配置文件**:在 Struts2 的配置文件(struts.xml 或其他自定义命名的 XML 文件)中,需要定义 ACTION 类及其对应的 URL 映射,以及可能的 JSON 结果类型。 6. **EXT Store 和 Proxy**:EXT 的 Store 用于存储...
标题 "GWT+EXT+STRUTS2+Eclipse完整范例.rar" 提示我们这是一个包含一个集成开发环境Eclipse的项目,该项目集成了Google Web Toolkit (GWT), EXT JS 和Struts2框架。描述 "整合 GWT EXT STRUTS2 Eclipse 范例" 明确...
此外,还可以学习到如何配置 Struts 的配置文件(struts-config.xml)以及EXT的配置文件,了解两者之间的数据传递方式。 通过对这个系统的学习,开发者不仅可以掌握 EXT 和 Struts1.2 的基本用法,还能深入理解如何将...
在IT行业中,EXT、Struts和Spring是三个非常重要的技术框架,它们分别专注于用户界面、MVC架构和依赖注入。这个“ext+struts+spring小例子”是一个整合这三个技术的示例项目,用于实现一个图书管理应用。下面将详细...
一个Ext3 + struts2 + mysql的程序,主要功能是做了一个员工考勤系统,程序采用ext + action + dao的分层结构。代码大概有3000行,功能包括基本的增删改查、头像上传、分页、拦截器等功能,还用ext做了部分前台,有...
7. 插件整合:Struts2的插件机制允许开发者添加更多的功能,比如上传文件、国际化支持等。 通过这个项目,开发者不仅可以学习到如何将这两者有效地整合,还可以了解到如何在实际项目中管理数据流、处理用户交互以及...
标题中的“一个ext+spring+hibernate+struts2做的系统”指的是一个基于四大开源框架构建的企业级Java Web应用程序。这些框架分别是EXT JS(一个用于构建富客户端界面的JavaScript库)、Spring(一个全面的Java企业...
本实例主要关注"ext+struts2"的集成,这是一种常见的Java Web开发组合,其中ext是一个强大的JavaScript库,用于构建富客户端应用,而Struts2是基于MVC设计模式的Java Web框架,负责后端业务逻辑处理和页面展示的组织...
本文将详细介绍EXT与Struts2的结合使用,并通过标题和描述中的关键词,如“树”、“gridpanel”、“分页”、“文件上传”和“tabpanel”,深入探讨这些组件的应用。 EXT是一个强大的JavaScript库,它提供了丰富的...
在IT行业中,Web开发是一个重要的领域,而Struts2和EXT是两个常用的技术框架。本文将详细介绍如何将它们整合以实现一个登录功能。 Struts2是一个基于MVC(Model-View-Controller)设计模式的Java Web框架,它极大地...