xml
<interceptor name="fileupload" class="com.opensymphony.webwork.interceptor.FileUploadInterceptor"/>
<interceptor-stack name="uploadStack">
<interceptor-ref name="fileupload"/>
<interceptor-ref name="defaultStack"/>
</interceptor-stack>
<package name="fileUpload" namespace="/fileUpload" extends="webwork-default">
<default-interceptor-ref name="uploadStack" />
<action name="fileUpload" class="com.casetrial.fileUpload.UploadAction">
<result name="success">/pages/appealSituation/fileUploadIndex.jsp</result>
</action>
</package>
action
public class UploadAction extends ActionSupport {
private File[] files; //多个文件对象数组
private String[] filesFileName; //文件对应的真实文件名 单个文件上传时不需要此属性定义
//多文件上传时 file.getName() 无效,取得不是真实的文件名,而是upload_xxx.tmp
public String execute(){
System.out.println(files==null);
if (files != null){
for (int i = 0; i < files.length; i++){
File file = files[i];
String fileName = filesFileName[i];
System.out.print(" File list: ");
System.out.print(" name:=" + file.getName() + " ");
System.out.print(" fileName:=" + fileName + " ");
System.out.print(" path:=" + file.getPath() + " ");
System.out.print(" ");
FileOutputStream outputStream = null;
FileInputStream fileIn = null;
ResourceBundle rb = ResourceBundle.getBundle("config");
String fileDir = rb.getString("saveDir")+File.separator;
String filePath = fileDir+fileName;
File f = new File(fileDir);
f.mkdirs();
try {
outputStream = new FileOutputStream(filePath);
fileIn = new FileInputStream(file);
} catch (FileNotFoundException e) {
e.printStackTrace();
}
byte[] buffer = new byte[1024];
int len;
try {
while((len=fileIn.read(buffer))>0){
outputStream.write(buffer,0,len);
}
fileIn.close();
outputStream.close();
} catch (IOException e) {
e.printStackTrace();
}
System.out.println("uploadfile name="+fileName);
}
}else{
System.out.println("file is null!");
}
return SUCCESS;
}
public String[] getFilesFileName(){
return filesFileName;
}
public void setFilesFileName(String[] filesFileName){
this.filesFileName = filesFileName;
}
public File[] getFiles(){
return files;
}
public void setFiles(File[] files){
this.files = files;
}
/**//**
* 获取session对象
* @return
*/
public HttpSession getSession(){
return getRequest().getSession();
}
/**//**
* 获取request对象
*
* @return httpServletRequest
*/
public HttpServletRequest getRequest(){
return ServletActionContext.getRequest();
}
/**//**
* 获取response对象
*
* @return HttpServletResponse
*/
public HttpServletResponse getResponse(){
return ServletActionContext.getResponse();
}
/**//**
* 获取ServletContext对象
*
* @return ServletContext
*/
public ServletContext getContext(){
return ServletActionContext.getServletContext();
}
/**//**
* 获取ActionContext
*
* @return
*/
public ActionContext getActionContext(){
return ActionContext.getContext();
}
/**//**
* 获取参数map
*
* @return
*/
public Map getParameterMap(){
return getActionContext().getSession();
}
/**//**
* 获取输入参数名字对应的值
*
* @param name
* @return
*/
public String getParameter(String name){
return (String) getParameterMap().get(name);
}
}
页面
<html>
<head>
</head>
<script language="Javascript" charset="utf-8">
function addAccessory(){
var accessoryListObj = document.getElementById("accessoryList");
var accObj = document.createElement("span");
var spanId = (new Date()).getTime();
var spanHTML = " <input name='files' type='file' /><input type='button' value='删除' onclick=deleteFile('" + spanId + "')><br>";
accObj.setAttribute("id", spanId);
accObj.setAttribute("width", "100px");
accObj.innerHTML = spanHTML;
accessoryListObj.appendChild(accObj);
}
function deleteFile(fileId){
var accessoryListObj = document.getElementById("accessoryList");
var accObj = document.getElementById(fileId);
accessoryListObj.removeChild(accObj);
}
</script>
<body>
<form action="../fileUpload/fileUpload.action"
enctype="multipart/form-data" method="post">
<table id="DataTable">
<tbody>
<tr>
<td class="style2" colspan="4">
<strong>附件: </strong>
<span title="增加附件" onclick="addAccessory()"
style="cursor:pointer;color:blue;"><strong>[添加附件]</strong>
</span>
</td>
</tr>
<tr>
<td colspan="4" style="width:100%;height:300px;">
<div id="accessoryList"
style="overflow-x:auto;overflow-y:auto;width:1000px;height:100%;">
<input type="file" name="files">
</div>
</td>
</tr>
<tr>
<td colspan="4" style="width:100%;height:15px;" align="center">
<input type="Submit" value="提交">
</td>
</tr>
</tbody>
</table>
</form>
</body>
</html>
一运行总是会发现files对象为Null,就得不到所要上传的东西,大家看看是错在哪儿了,我看了半天找不出来