基于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开发实例精解完整光盘 郝玉龙,尹建平 著 清华大学出版社,北京交通大学出版社 2008-03-01 《Java EE Web开发实例...例程6-2:基于Struts构建新闻发布系统 附录A 开发环境的搭建 附录B 知识点索引 参考文献
Tomcat是一个免费的开源的Serlvet容器,在Tomcat中,应用程序的部署很简单,你只需将你的WAR放到Tomcat的webapp目录下,Tomcat会自动检测到这个文件,并将其解压。你在浏览器中访问这个应用的Jsp时,通常第一次会很...
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 ...
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...
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标签 ...
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标签 ...
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标签 ...
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...