Struts2+uploadify多文件上传实例

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技术站

(0)
上一篇 2023年5月20日
下一篇 2023年5月20日

相关文章

  • 如何使用Java Agent?

    以下是使用Java Agent的完整使用攻略: 什么是Java Agent? Java Agent是JVM的一个重要功能,可以在运行时修改代码行为。Java Agent可以利用JVM提供的Java Instrumentation API,拦截和转换字节码,以实现代码注入、性能优化、运行时监控等功能。 如何使用Java Agent? 以下是使用Java Age…

    Java 2023年5月11日
    00
  • SpringBoot接入轻量级分布式日志框架(GrayLog)的操作方法

    Spring Boot接入轻量级分布式日志框架(GrayLog)的操作方法 GrayLog是一个轻量级的分布式日志框架,可以帮助我们收集、存储和分析应用程序的日志。在本文中,我们将详细讲解如何在Spring Boot应用程序中接入GrayLog。 步骤一:添加依赖 我们需要在pom.xml文件中添加以下依赖项: <dependency> <…

    Java 2023年5月15日
    00
  • Java编程实现数组转成list及list转数组的方法

    Java编程实现数组转成list及list转数组的方法 在Java编程中,我们经常需要将数组和List之间进行转换。下面是将数组转换成List和将List转换成数组的方法: 将数组转换成List 使用Arrays.asList(Object[] array) 可以使用Arrays.asList()方法将数组转换成List。代码示例如下: // 定义一个数组 …

    Java 2023年5月26日
    00
  • Java毕业设计实战之共享租车信息管理系统的实现

    Java毕业设计实战之共享租车信息管理系统的实现 共享租车信息管理系统是一个基于Java的Web应用程序,它的主要作用是对租赁车辆进行管理和查询。本文将详细讲解实现该系统的完整攻略。 系统需求 在开始实现前,需要先明确系统的需求: 用户可以注册账号或使用已有账号登录系统; 用户可以浏览车辆信息,包含车辆图片、基本信息、租赁费用等; 用户可以选择租赁车辆,并提…

    Java 2023年5月24日
    00
  • extJs 常用到的增,删,改,查操作代码

    下面我将为您详细讲解 ExtJS 常用到的增、删、改、查操作的完整攻略。这里主要针对 ExtJS 版本 6.2 进行讲解。 概述 在 ExtJS 中,我们常常需要进行数据的增、删、改、查操作。这些操作基本都是基于 Ext.data.Store 和 Ext.data.Model 进行的。 其中,Ext.data.Store 负责连接数据源(可以是远程 URL,…

    Java 2023年6月15日
    00
  • 带你快速了解Java中类和对象的关系

    一、 Java中类和对象的关系介绍 在Java中,类是代码的基本单元,是一种自定义数据类型。一个类可以包含变量、方法和构造函数。对象是类的实例,也就是类在内存中的实际存在,是通过new关键字创建的。同一个类可以创建多个不同的对象,并且每个对象都有自己的属性和行为。 二、 类和对象的关系 类和对象的关系主要表现在以下两个方面。 类是对象的模板 在Java中,我…

    Java 2023年5月26日
    00
  • 解析Oracle数据库中的对象集合schema

    我来详细讲解一下解析Oracle数据库中的对象集合schema的完整攻略。 1. 确定schema名称 首先需要确认要解析的Oracle数据库对象集合schema的名称,可以使用以下SQL语句查询: SELECT username FROM dba_users; 2. 使用Oracle的数据字典 Oracle提供了数据字典来存储关于数据库对象的元数据信息,数…

    Java 2023年5月20日
    00
  • Java设计模式之工厂模式(Factory模式)介绍

    Java设计模式之工厂模式(Factory模式)介绍 什么是工厂模式? 工厂模式是一种常用的面向对象设计模式。它提供了一种创建对象的最佳方式,而无需将对象的创建细节暴露给客户端。 工厂模式通过通过一个工厂方法来创建对象。这个方法通常被声明在工厂接口或抽象类中,具体子类实现这个方法来创建具体的对象。 工厂模式可以在程序中很方便地修改对象的创建方式。 工厂模式的…

    Java 2023年5月19日
    00
合作推广
合作推广
分享本页
返回顶部