Struts2+Uploadify多文件上传完整攻略
1. 前言
本文介绍如何在Struts2框架中使用uploadify插件实现多文件上传功能。假设你已经对Struts2框架有基本的了解,并且熟悉Maven构建工具。
2. 准备工作
在开始实现多文件上传之前,需要准备以下工具和环境:
- 开发IDE:推荐使用IntelliJ IDEA或Eclipse
- Maven:用于管理和构建项目
- Struts2框架:包含Struts2、Struts2-spring-plugin和Struts2-json-plugin
- Uploadify插件:用于实现多文件上传
- Tomcat:运行和调试项目的服务器
3. 实现过程
3.1 引入依赖
在pom.xml文件中添加以下依赖:
<dependency>
<groupId>org.apache.struts</groupId>
<artifactId>struts2-core</artifactId>
<version>2.5.22</version>
</dependency>
<dependency>
<groupId>org.apache.struts</groupId>
<artifactId>struts2-spring-plugin</artifactId>
<version>2.5.22</version>
</dependency>
<dependency>
<groupId>org.apache.struts</groupId>
<artifactId>struts2-json-plugin</artifactId>
<version>2.5.22</version>
</dependency>
<dependency>
<groupId>com.oreilly.servlet</groupId>
<artifactId>cos</artifactId>
<version>20021113</version>
</dependency>
3.2 创建Action类
在src/main/java下创建一个Action类,例如:
public class FileUploadAction extends ActionSupport {
private File[] file;
private String[] fileFileName;
// get/set方法略
}
3.3 创建页面
在WebContent目录下创建一个JSP页面,例如file_upload.jsp,代码如下:
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<script type="text/javascript" src="js/jquery-1.7.2.min.js"></script>
<title>文件上传</title>
<script type="text/javascript">
$(document).ready(function() {
$("#file").uploadify({
'swf' : 'uploadify.swf',
'uploader' : 'file_upload.action',
'fileSizeLimit' : '10MB',
'multi' : true,
'buttonText' : '选择文件',
'removeCompleted' : false
});
});
</script>
</head>
<body>
<input type="file" id="file" name="file"/>
</body>
</html>
3.4 配置Struts2
在struts.xml文件中添加如下配置:
<package name="default" namespace="/" extends="struts-default,json-default">
<action name="file_upload" class="com.example.action.FileUploadAction" method="execute">
<result type="json"/>
</action>
</package>
3.5 实现Action类
在FileUploadAction类中实现execute方法如下:
public String execute() {
if (file != null && file.length > 0) {
for (int i = 0; i < file.length; i++) {
// 上传文件
}
}
return SUCCESS;
}
3.6 上传文件方法实现
通过cos.jar包实现上传文件的方法如下:
private void uploadFile(File file, String fileName) throws IOException {
FileInputStream fileInputStream = null;
try {
fileInputStream = new FileInputStream(file);
FTPClient ftpClient = new FTPClient();
ftpClient.connect(ftpServer, port);
ftpClient.login(username, password);
if (!FTPReply.isPositiveCompletion(ftpClient.getReplyCode())) {
ftpClient.disconnect();
throw new IOException("FTP Server refused connection.");
}
ftpClient.changeWorkingDirectory(ftpDirectory);
ftpClient.setFileType(FTP.BINARY_FILE_TYPE);
ftpClient.enterLocalPassiveMode();
ftpClient.storeFile(fileName, fileInputStream);
} finally {
fileInputStream.close();
}
}
4. 示例
4.1 示例一
使用uploadify插件上传单个文件到指定目录中。
4.2 示例二
使用uploadify插件上传多个文件到指定目录中。
5. 结语
以上就是使用Struts2和uploadify插件实现多文件上传的完整攻略,希望对大家有所帮助。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Struts2+uploadify多文件上传实例 - Python技术站