您的位置:首页 > 编程语言 > Java开发

struts多文件上传的实现描述附带代码

2012-03-08 19:39 357 查看
使用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>
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: