struts2实现多文件上传
1、首先在jsp页面中写出添加多文件上传的页面效果,用jquery实现点击一次添加按钮后,实现在下面显示一个上传文件的file类型的input,以及一个删除的按钮。并实现删除的操作。在jsp中实现代码如下:
<body>
<form action="${pageContext.request.contextPath}/upFilemore.action" enctype="multipart/form-data" method="post">
<div align="center">
<h1>多文件上传</h1><br/>
<input type="button" value="添加" id="add"/>
<input type="submit" value="上传"/>
</div>
<div id="two" align="center">
</div>
</form>
</body>
</html>
<script type="text/javascript">
$(document).ready(
function(){
$("#add").click(function(){
$("<div><input type='file' name='upload' /><input type='submit' class='delet2' name='Submit2' value='删除' /></div>").clone(true).appendTo("#two")
});
$(".delet2").live("click",function(){
$(this).parent().remove();
});
});
</script>
2、在struts.xml文件中进行配置。代码如下:
<struts>
<action name="upFilemore" class="cn.csdn.hr.up.action.UploadMoreAction" method="uploadmore">
<result>./sc.jsp</result>
</action>
</package>
</struts>
3、最后写出实现多文件的action类。代码如下:
package cn.csdn.hr.up.action;
import java.io.File;
import java.io.IOException;
import org.apache.commons.io.FileUtils;
import org.apache.struts2.ServletActionContext;
import com.opensymphony.xwork2.ActionSupport;
public class UploadMoreAction extends ActionSupport{
/**
*
*/
private static final long serialVersionUID = 1L;
private File upload[];//上传文件
private String uploadContentType[];//上传文件的类型
private String uploadFileName[]; //上传文件的名称
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 uploadmore(){
String path = ServletActionContext.getServletContext().getRealPath("ims");
System.out.println(path);
File file = new File(path);
if(!file.exists()){
file.mkdirs();
}
/**
* 以流的方式 读取文件 写入到指定的文件中去
* mkdirs mkdir 区别
* FileUtils工具完成上传
* */
try {
for(int i=0;i<upload.length;i++){
FileUtils.copyFile(upload[i],new File(file,uploadFileName[i]));
System.out.println("上传文件的名称:"+uploadFileName+",上传文件的类型:"+uploadContentType);
}
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return SUCCESS;
}
}