使用jquery点击添加按钮添加浏览框实现struts多文件上传。
例如:点击添加,添加一个浏览框。
Jsp页面代码:
<%@page language="java" import="java.util.*"pageEncoding="utf-8"%>
<%
Stringpath = request.getContextPath();
StringbasePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>
<!DOCTYPEHTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<meta http-equiv="Content-Type"content="text/html; charset=utf-8" />
<title>Untitled Document</title>
<scripttype="text/javascript" src="./js/jquery-1.7.1.js">
</script>
<scripttype="text/javascript">
$(function(){
var i = 2;
$("#add").click(function(){
$("#main").append(
'<div>上传文件:<inputtype="file" name="upload"/></div>');
});
});
</script>
</head>
<body>
<div align="center">
<formaction="${pageContext.request.contextPath}/csdn/upFiles.action"
enctype="multipart/form-data"method="post">
<div id="main">
<div>
上传文件:<input type="file"name="upload" />
</div>
</div>
<input type="button"id="add" name="button" value="添加"/>
<input type="submit" value="上传"/>
</form>
</div>
</body>
</html>
UploadsAction代码:
packagecn.csdn.hr.up.action;
importjava.io.File;
importjava.io.IOException;
importorg.apache.commons.io.FileUtils;
importorg.apache.struts2.ServletActionContext;
importcom.opensymphony.xwork2.ActionSupport;
publicclass UploadsAction extends ActionSupport {
// 规定
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 uploads() {
String path =ServletActionContext.getServletContext().getRealPath(
"/ims");
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], newFile(file, uploadFileName[i]));
}
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
System.out.println("上传文件的名称:" +getUploadFileName() + "------上传文件的类型"
+ getUploadContentType());
return SUCCESS;
}
}
导入所需jar包:
配置web.xml:
<?xmlversion="1.0" encoding="UTF-8"?>
<web-appversion="2.5" xmlns="http://java.sun.com/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee
http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">
<filter>
<filter-name>struts2</filter-name>
<filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>struts2</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
<welcome-file-list>
<welcome-file>index.jsp</welcome-file>
</welcome-file-list>
</web-app>
配置struts2.xml;
<?xmlversion="1.0" encoding="UTF-8"?>
<!DOCTYPE struts PUBLIC
"-//Apache Software Foundation//DTDStruts Configuration 2.3//EN"
"http://struts.apache.org/dtds/struts-2.3.dtd">
<struts>
<includefile="struts-user.xml"></include>
<package name="test" extends="struts-default"namespace="/csdn">
<action name="upFiles"class="cn.csdn.hr.up.action.UploadListAction"method="uploads">
<result>../sc.jsp</result>
</action>
</package>
</struts>