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;
}
}