`

基于Struts2环境下的文件上传实例(很简洁的逻辑和代码) 收藏

    博客分类:
  • j2ee
阅读更多
基于Struts2环境下的文件上传实例(很简洁的逻辑和代码) 收藏
package demo;

import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;

import org.apache.struts2.ServletActionContext;
import com.opensymphony.xwork2.ActionSupport;

/**
* @author  yeeku.H.lee kongyeeku@163.com
* @version  1.0
* <br>Copyright (C), 2005-2008, yeeku.H.Lee
*/

@SuppressWarnings("serial")
public class UploadAction extends ActionSupport
{
private String title;// 一个备用的JavaBean属性
    private File upload;// 与上传页面中的元素 <input type="file" name="upload" /> 对应即可
    private String uploadContentType; // Struts2的fileUpload拦截器的固有属性
    private String uploadFileName; // Struts2的fileUpload拦截器的固有属性

//接受依赖注入的属性
    private String savePath;
//接受依赖注入的Setter方法
    public void setSavePath(String value)
{
        this.savePath = value;
    }

    @SuppressWarnings("deprecation")
private String getSavePath() throws Exception
{
        return ServletActionContext.getRequest().getRealPath(savePath);
    }
   
    public void setTitle(String title) {
       this.title = title;
    }
   
public void setUpload(File upload) {
  this.upload = upload;
}

public void setUploadContentType(String uploadContentType) {
  this.uploadContentType = uploadContentType;
}

public void setUploadFileName(String uploadFileName) {
  this.uploadFileName = uploadFileName;
}

public String getTitle() {
    return (this.title);
}
public File getUpload() {
  return (this.upload);
}

public String getUploadContentType() {
  return (this.uploadContentType);
}

public String getUploadFileName() {
  return (this.uploadFileName);
}
@Override
    public String execute() throws Exception
{
  System.out.println("开始上传单个文件....");
  System.out.println("原文件名称:" + getUploadFileName());
  System.out.println("原文件类型:" + getUploadContentType());
  System.out.println("上传文件保存在:"+getSavePath());
  //以服务器的文件保存地址和原文件名建立上传文件输出流
  FileOutputStream fos = new FileOutputStream(getSavePath() + "\\" + getUploadFileName());
  FileInputStream fis = new FileInputStream(getUpload());
  byte[] buffer = new byte[4*1024];
  int len = 0;
  while ((len = fis.read(buffer)) > 0)
  {
   fos.write(buffer , 0 , len);
  }
  fis.close();
  fos.close();
        return SUCCESS;
    }
}

action的配置如下:

<!-- 测试文件上传-->
  <action name="uploadAction" class="demo.UploadAction">
    <param name="savePath">/upload</param>
    <result>/demo/upload.jsp</result>
  </action>



分享到:
评论

相关推荐

    基于Struts2的文件上传下载功能的完整源代码。

    在基于Struts2的文件上传下载功能中,它提供了处理用户上传文件和提供文件下载的服务。这个完整的源代码是实现这些功能的一个实例,经过测试确保了其正确性和可用性。 首先,我们要理解Struts2中的Action类。Action...

    struts2_uploadify带进度条的多文件上传下载

    总之,这个项目实例为使用Struts2和Uploadify实现带进度条的多文件上传及下载功能提供了一个基础模板,对于学习和实践此类功能的开发者来说是一个有价值的参考。通过深入研究和理解这个项目的代码,可以提升对Struts...

    最新Struts2开源实例代码以及Struts2源码

    这份"最新Struts2开源实例代码以及Struts2源码"包含了Struts2框架的最新版本2.3.12的应用示例和源码,对于深入理解Struts2的工作机制和开发实践非常有帮助。 首先,我们来看`struts-2.3.12-apps.gz`,这个文件很...

    uploadify+struts2多文件上传实例

    `uploadify`与`Struts2`结合的多文件上传实例就是一个典型的解决方案,尤其针对跨浏览器兼容性问题,如在Firefox下的session问题。下面我们将深入探讨这两个技术以及它们如何协同工作。 `Uploadify`是一个基于...

    struts 附件上传 仿照163样式 实例

    这个实例可能结合了Struts2的特性,因为Struts2提供了更为强大的文件上传支持和更好的API。 1. **配置Struts2的上传支持**:在Struts2的配置文件(struts.xml)中,我们需要启用文件上传插件,例如添加`...

    基于Struts+hibernate+spring+Html5+Mysql支持多文件上传实例

    本实例是一个基于Struts2、Hibernate、Spring和HTML5技术的综合应用,利用MySQL数据库存储文件信息,为用户提供了一个高效且用户友好的多文件上传解决方案。下面将详细阐述这个实例中的各个关键知识点。 首先,**...

    Struts2.0文件上传实例

    通过分析这些文件,你可以了解到整个文件上传流程是如何在Struts2框架下工作的。 总的来说,Struts2.0的文件上传功能使得开发者能够方便地在Web应用中集成这一功能,而了解其工作原理和最佳实践对于提升开发效率和...

    WebUploader上传文件实例(Java Struts2版).zip

    总的来说,这个实例提供了一个完整的WebUploader上传文件的参考实现,涵盖了前后端的全部流程,对于理解和使用WebUploader与Struts2进行文件上传有着极大的帮助。开发者可以通过分析这个实例,学习如何在自己的项目...

    基于struts2的高校信息管理系统

    【基于Struts2的高校信息管理系统】是一种采用Java Web技术构建的应用系统,它主要用于高校内部的行政管理和教学管理工作。Struts2是Action Servlet框架的升级版,提供了更加强大、灵活的MVC(模型-视图-控制器)...

    基于Struts框架的Web文件管理系统(毕业设计)

    【基于Struts框架的Web文件管理系统】是一种典型的Java Web应用,它利用了Struts框架的强大功能,为用户提供了一个集文件上传、下载以及管理于一体的平台。Struts是一个开源的MVC框架,它帮助开发者构建结构清晰、可...

    Struts2入门教程,有源码和实例

    Struts2是一个强大的Java ...通过这个教程,你将能够独立开发基于Struts2的Java web应用程序,并具备进一步深入研究和优化应用的能力。记住,实践是检验理论的最好方式,所以动手操作并不断尝试,是掌握Struts2的关键。

    struts2的简单实例

    Struts2是一个强大的MVC(Model-View-Controller)框架,用于构建企业级Java Web应用...随着对框架的深入理解和实践,你可以掌握更高级的功能,如国际化、文件上传、AJAX集成等,进一步提升Web应用的开发效率和质量。

    STRUTS2站点,STRUTS2学习实例1

    首先,Struts2是基于Model-View-Controller(MVC)架构模式的,它提供了一种组织应用程序代码的方法,将业务逻辑、数据模型和用户界面分离,提高了代码的可维护性和可扩展性。在MVC模式中,Model负责处理数据,View...

    多文件上传实例 多文件上传实例

    本实例是基于Struts1.3框架实现的多文件上传功能,它包含了文件类型检查,以确保上传的安全性和合规性。下面将详细介绍这个实例涉及的关键知识点。 1. **Struts1.3框架**:Struts是一个开源的MVC(Model-View-...

    基于struts2 的上传下载源码

    这个基于Struts2的上传下载源码提供了一个基础的实现,帮助开发者理解和实现文件上传与下载的功能。以下是该源码涉及的关键知识点: 1. **Struts2框架**:Struts2是Apache软件基金会的一个开源项目,它提供了Web...

    Struts2+Hibernate文件网盘系统

    【Struts2+Hibernate文件网盘系统】是一个基于Java Web技术构建的项目,它整合了Struts2和Hibernate两个框架,旨在实现一个功能完善的在线文件存储和管理平台。这个项目可以作为一个毕业设计的实例,帮助学生理解并...

    ssh2(struts2+spring2.5+hibernate3.3+ajax)带进度条文件上传(封装成标签)

    标题 "ssh2(struts2+spring2.5+hibernate3.3+ajax)带进度条文件上传(封装成标签)" 涉及到的是一个基于Java Web的项目,利用了Struts2、Spring2.5、Hibernate3.3和Ajax技术,实现了文件上传并带有进度条显示的功能...

    jsp上传下载文件源代码,通过struts.xml控制在100M以内

    总之,这个项目是关于如何在Java Web环境中使用JSP和Struts2框架实现文件上传和下载功能的实例,同时也展示了如何通过Struts配置限制文件大小,以防止过大文件导致的服务器资源占用过高。通过对这些技术的深入理解和...

    struts2+hibernate开发实例

    5. **文件上传与下载**:实例中可能包含了使用Struts2提供的FileUpload插件进行文件上传和下载的示例。 Hibernate是一个对象关系映射(ORM)框架,它简化了数据库操作。以下是Hibernate的核心概念: 1. **实体...

    ExtJS4+strtus2文件上传实例源码

    在本文中,我们将深入探讨如何使用ExtJS4和Struts2框架实现文件上传功能。首先,让我们了解一下这两个关键技术和它们在文件上传中的作用。 **ExtJS4:** ExtJS4是一个强大的JavaScript库,用于构建富客户端应用程序...

Global site tag (gtag.js) - Google Analytics