2008-02-28
《struts2权威指南》学习笔记之struts2多文件上传--使用数组方式
上传页面:

<%...@ page language="java" contentType="text/html; charset=GBK"%>
<%...@taglib prefix="s" uri="/struts-tags"%>
<%...@ page isELIgnored="false" %>
<%...@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>

<head>
<meta http-equiv="Content-Type" content="text/html; charset=GBK" />
<title></title>
</head>
<body>
<s:fielderror/>
<form action="upload.action" method="post" enctype="multipart/form-data">
<input type="text" name="title" /><br>
<input type="file" name="upload" /><br>
<input type="file" name="upload" /><br>
<input type="file" name="upload" /><br>
<input value="upload" type="submit" />
</form>
</body>
</html>
上传Action
package lee;
import com.opensymphony.xwork2.Action;
import com.opensymphony.xwork2.ActionContext;
import org.apache.struts2.ServletActionContext;
import java.io.*;
import com.opensymphony.xwork2.ActionSupport;

/** *//**
* @author yeeku.H.lee kongyeeku@163.com
* @version 1.0
* <br>Copyright (C), 2005-2008, yeeku.H.Lee
* <br>This program is protected by copyright laws.
* <br>Program Name:
* <br>Date:
*/
public class UploadAction extends ActionSupport
...{
private String title;
private File[] upload;
private String[] uploadContentType;
private String[] uploadFileName;

//接受依赖注入的属性
private String savePath;
//接受依赖注入的方法
public void setSavePath(String value)
...{
this.savePath = value;
}
private String getSavePath() throws Exception 
...{
return ServletActionContext.getRequest().getRealPath(savePath);
}

public void setTitle(String title) ...{
this.title = title;
}

public File[] getUpload() ...{
return upload;
}

public void setUpload(File[] upload) ...{
this.upload = upload;
}

public String[] getUploadContentType() ...{
return uploadContentType;
}

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

public String[] getUploadFileName() ...{
return uploadFileName;
}

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

public String getTitle() ...{
return title;
}
@Override
public String execute() throws Exception
...{
System.out.println("开始上传单个文件-----------------------");
System.out.println(getSavePath());
System.out.println("==========" + getUploadFileName());
System.out.println("==========" + getUploadContentType());
System.out.println("==========" + getUpload());
File[] files=this.getUpload();
for(int i=0;i<files.length;i++)...{
//以服务器的文件保存地址和原文件名建立上传文件输出流
FileOutputStream fos = new FileOutputStream(getSavePath() + "\" + getUploadFileName()[i]);
FileInputStream fis = new FileInputStream(files[i]);
byte[] buffer = new byte[1024];
int len = 0;
while ((len = fis.read(buffer)) > 0)
...{
fos.write(buffer , 0 , len);
}
}
return SUCCESS;
}



}
struts.xml
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE struts PUBLIC
"-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"
"http://struts.apache.org/dtds/struts-2.0.dtd">
<struts>
<constant name="struts.custom.i18n.resources" value="globalMessages"/>
<constant name="struts.i18n.encoding" value="GBK"/>
<package name="lee" extends="struts-default">
<action name="upload" class="lee.UploadAction">
<interceptor-ref name="fileUpload">
<param name="allowedTypes">image/bmp,image/png,image/gif,image/jpeg,image/jpg</param>
<param name="maximumSize">2000</param>
</interceptor-ref>
<interceptor-ref name="defaultStack"/>
<param name="savePath">/upload</param>
<result>/succ.jsp</result>
<result name="input">/upload.jsp</result>
</action>
</package>
</struts> 
结果显示页面:
- 浏览: 84485 次
- 性别:

- 来自: 北京

- 详细资料
搜索本博客
最近加入圈子
最新评论
-
Static初始化代码快访问st ...
当然啦,final型常量只能被赋值一次
-- by Chihom -
Tomcat 5.5不能使用EL表达 ...
請在web.xml修改XSD<?xml version="1.0" enc ...
-- by trowa -
一个通用的泛型GenericH ...
谢谢!使用中!
-- by sangood -
Spring AOP四种创建通知( ...
我一直想知道如何拦截某个类中特定的方法,而不是所有的方法?
-- by yourgame -
HashTable和HashMap的区 ...
这么多总结,还算你的这个不错,谢谢,学习
-- by lysmart_8






评论排行榜