单文件上传
UplaodAction.java
public class UploadAction extends ActionSupport {
private File file; //InputName
private String fileFileName; //格式:InputName+”FileName”
private String fileContentType; //格式:InputName+”ContentType”.
public String upload() throws IOException{
HttpServletRequest request = ServletActionContext.getRequest(); //得到request
String path = request.getRealPath("/upload"); //将文件上传到upload文件夹下,返回虚拟路径在硬盘上的绝对路径
InputStream is = new FileInputStream(file); //Input流
OutputStream os = new FileOutputStream(new File(path,fileFileName));//上传的文件保存的位置
int len = 0;
byte [] buffer = new byte[1024];
while((len = is.read(buffer)) != -1){
os.write(buffer,0,len);
}
is.close();
os.close();
return Action.SUCCESS;
}
//省略get set方法
}
Upload.jsp
<form action="/Upload/aaa/upload" method="post" enctype="multipart/form-data">
文件:<input type="file" name="file"></br> <!--name属性与Action中的private File file对应 -->
<input type="submit" value="上传">
</form>
struts.xml配置
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE struts PUBLIC
"-//Apache Software Foundation//DTD Struts Configuration 2.3//EN"
"http://struts.apache.org/dtds/struts-2.3.dtd">
<struts>
<constant name="struts.enable.DynamicMethodInvocation" value="false" />
<constant name="struts.devMode" value="true" />
<!-- 设置临时目录 -->
<constant name="struts.multipart.saveDir" value="c:\"></constant>
<!-- 设置上传文件的最大大小,>=maximumSize -->
<constant name="struts.multipart.maxSize" value="20971520"></constant>
<package name="default" namespace="/aaa" extends="struts-default">
<action name="upload" class="cn.sxt.action.UploadAction" method="upload">
<result>/index.jsp</result>
<interceptor-ref name="fileUpload"> <!-- 应用fileUpload过滤器 -->
<param name="maximumSize">20971520</param> <!-- 设置上传文件的最大大小 -->
</interceptor-ref>
<interceptor-ref name="defaultStack"></interceptor-ref>
</action>
</package>
<include file="example.xml"/>
</struts>
UploadMoreAction.java
public class UploadMoreAction extends ActionSupport {
private File [] file; //因为上传多个文件,inputName一样,所以是数组形式
private String[]fileFileName;
private String []fileContentType;
public String uploadMore() throws IOException{
HttpServletRequest request = ServletActionContext.getRequest();
String path = request.getRealPath("upload");//上传文件保存的路径
for(int i = 0;i<file.length;i++){
InputStream is = new FileInputStream(file[i]);
OutputStream os = new FileOutputStream(new File(path,fileFileName[i]));
int len = 0;
byte []buffer = new byte[1024];
while((len = is.read(buffer)) != -1){
os.write(buffer,0,len);
}
is.close();
os.close();
}
return Action.SUCCESS;
}
//shenglveget
}
UploadMore.jsp
<form action="/Upload/aaa/uploadmore" method="post" enctype="multipart/form-data">
<input type="file" name="file"></br>
<input type="file" name="file"></br>
<input type="file" name="file"></br> <!--inputName保持一致 -->
<input type="submit" value="上传">
</form>
struts.xml配置
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE struts PUBLIC
"-//Apache Software Foundation//DTD Struts Configuration 2.3//EN"
"http://struts.apache.org/dtds/struts-2.3.dtd">
<struts>
<constant name="struts.enable.DynamicMethodInvocation" value="false" />
<constant name="struts.devMode" value="true" />
<!-- 设置临时目录 -->
<constant name="struts.multipart.saveDir" value="c:\"></constant>
<!-- 设置上传文件的最大大小,>=maximumSize -->
<constant name="struts.multipart.maxSize" value="20971520"></constant>
<package name="default" namespace="/aaa" extends="struts-default">
<action name="upload" class="cn.sxt.action.UploadMoreAction" method="upload">
<result>/index.jsp</result>
<interceptor-ref name="fileUpload"> <!-- 应用fileUpload过滤器 -->
<param name="maximumSize">20971520</param> <!-- 设置上传文件的最大大小 -->
</interceptor-ref>
<interceptor-ref name="defaultStack"></interceptor-ref>
</action>
</package>
<include file="example.xml"/>
</struts>