`
chenyuxiaoxiao
  • 浏览: 71097 次
  • 性别: Icon_minigender_1
  • 来自: 西安
社区版块
存档分类
最新评论

Ext + struts2 UploadDialog 文件上传

阅读更多
原文: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;
}
}

分享到:
评论

相关推荐

    Ext+Struts2多文件上传

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

    Ext+struts+ibatis 完整项目

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

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

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

    ext+struts2

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

    struts+extjs实现UploadDialog

    在"struts+extjs实现UploadDialog"这个主题中,我们主要讨论如何利用Struts和ExtJS来创建一个文件上传对话框。UploadDialog通常是一个交互式的用户界面,允许用户选择本地文件并将其上传到服务器。 首先,让我们从...

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

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

    Ext+struts学生管理系统

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

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

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

    Extjs+Struts2实现异步文件上传

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

    Ext3.2 + struts 文件上传实例

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

    EXT+STRUTS2 经典例子

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

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

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

    ext+struts1.2图书管理系统

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

    ext+struts+spring小例子

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

    Ext + struts2 + mysql

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

    Ext+struts2项目

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

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

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

    ext+struts2的集成实例

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

    ext + struts2 例子

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

    ext+struts2整合实现登陆

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

Global site tag (gtag.js) - Google Analytics