`

基于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>



分享到:
评论

相关推荐

    Java EE Web开发实例精解完整光盘

    Java EE Web开发实例精解完整光盘 郝玉龙,尹建平 著 清华大学出版社,北京交通大学出版社 2008-03-01 《Java EE Web开发实例...例程6-2:基于Struts构建新闻发布系统 附录A 开发环境的搭建 附录B 知识点索引 参考文献

    基于J2EE框架的个人博客系统项目毕业设计论文(源码和论文)

    Tomcat是一个免费的开源的Serlvet容器,在Tomcat中,应用程序的部署很简单,你只需将你的WAR放到Tomcat的webapp目录下,Tomcat会自动检测到这个文件,并将其解压。你在浏览器中访问这个应用的Jsp时,通常第一次会很...

    JAVA程序开发大全---上半部分

    9.4 Hibernate应用实例:基于Struts+Hibernate的登录系统 155 9.5 本章小结 160 第10章 Spring框架的开发及应用 161 10.1 Spring框架概述 161 10.2 Spring框架中的IoC编程 162 10.2.1 控制反转的原理 163 10.2.2 ...

    Spring 2.0 开发参考手册

    13.8. Spring对分段文件上传(multipart file upload)的支持 13.8.1. 介绍 13.8.2. 使用MultipartResolver 13.8.3. 在表单中处理分段文件上传 13.9. 使用Spring的表单标签库 13.9.1. 配置标签库 13.9.2. form...

    Spring API

    13.8. Spring对分段文件上传(multipart file upload)的支持 13.8.1. 介绍 13.8.2. 使用MultipartResolver 13.8.3. 在表单中处理分段文件上传 13.9. 使用Spring的表单标签库 13.9.1. 配置 13.9.2. form标签 ...

    Spring中文帮助文档

    13.8. Spring对分段文件上传(multipart file upload)的支持 13.8.1. 介绍 13.8.2. 使用MultipartResolver 13.8.3. 在表单中处理分段文件上传 13.9. 使用Spring的表单标签库 13.9.1. 配置 13.9.2. form标签 ...

    Spring-Reference_zh_CN(Spring中文参考手册)

    13.8. Spring对分段文件上传(multipart file upload)的支持 13.8.1. 介绍 13.8.2. 使用MultipartResolver 13.8.3. 在表单中处理分段文件上传 13.9. 使用Spring的表单标签库 13.9.1. 配置标签库 13.9.2. form标签 ...

    spring chm文档

    13.8. Spring对分段文件上传(multipart file upload)的支持 13.8.1. 介绍 13.8.2. 使用MultipartResolver 13.8.3. 在表单中处理分段文件上传 13.9. 使用Spring的表单标签库 13.9.1. 配置标签库 13.9.2. form...

Global site tag (gtag.js) - Google Analytics