上传页面: <%...@ 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> 结果显示页面: <%...@ page language="java" contentType="text/html; charset=GBK"%><%...@taglib prefix="s" uri="/struts-tags"%><html> <head> <title>上传成功</title> </head> <body> 上传成功!<br> 文件标题:<s:property value=" + title"/><br> 文件为:<img src="<s:property value="'upload/' + uploadFileName[0]"/>"/><br> 文件为:<img src="<s:property value="'upload/' + uploadFileName[1]"/>"/><br> 文件为:<img src="<s:property value="'upload/' + uploadFileName[2]"/>"/><br> </body></html>