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日

相关文章

  • 使用IDEA搭建SSM框架的详细教程(spring + springMVC +MyBatis)

    使用IDEA搭建SSM框架的详细教程 简介 SSM框架是目前Java Web开发中最常用的框架之一,它由Spring、SpringMVC和MyBatis三个框架组成,可以很好地解决Java Web开发中的各种问题。本文将详细介绍如何使用IDEA搭建SSM框架,并提供两个示例说明。 环境准备 在开始之前,需要确保以下环境已经准备好: JDK 1.8以上版本 M…

    Java 2023年5月18日
    00
  • SpringBoot配置和切换Tomcat流程详解

    关于SpringBoot配置和切换Tomcat的流程,我来为您详细讲解。 1. SpringBoot 配置 Tomcat 的默认端口 SpringBoot默认使用的Tomcat端口是8080,可以通过在配置文件中配置server.port来修改端口号,例如设置为8090端口,只需要按照以下步骤操作: 打开配置文件application.properties或…

    Java 2023年6月2日
    00
  • netty中pipeline异常事件分析

    请允许我对“netty中pipeline异常事件分析”的攻略进行详细说明。 1. 理解pipeline异常事件 在Netty中,ChannelPipeline是消息处理的管道,消息在这条管道中流转,每个节点都可以做一些特定的处理。 在应用程序的运行过程中,有可能会发生一些异常情况,比如消息处理节点出错了,网络连接中断等。为了保证应用程序的健壮性,Netty提…

    Java 2023年5月25日
    00
  • Java中精确的浮点运算操作示例

    Java中的浮点数是基于IEEE 754标准实现的,这种浮点数具有很高的精度,但也会存在精度问题。本篇文章将介绍如何在Java中实现精确的浮点运算操作。 一、使用BigDecimal类 Java中提供了BigDecimal类,这个类可以精确表示浮点数值。使用BigDecimal的时候,需要使用BigDecimal的构造函数或者静态工厂方法来创建BigDeci…

    Java 2023年5月26日
    00
  • Java实现图片上传至FastDFS入门教程

    下面我将为你详细讲解Java实现图片上传至FastDFS入门教程的完整攻略。 什么是FastDFS? FastDFS是用于分布式文件存储的开源软件,支持文件上传、下载以及文件元数据的管理等操作。它采用了分布式的架构设计,可以实现高可用、高性能的文件存储。 准备工作 创建一个Maven项目。 在项目的pom.xml文件中添加FastDFS客户端的依赖。 &lt…

    Java 2023年6月15日
    00
  • maven 标签和标签的使用

    Maven是Java项目的一个重要构建工具,它允许我们轻松地管理项目依赖项和插件。 Maven中的repositories标签和pluginRepositories标签可以让我们指定Maven用于下载项目依赖项和插件的远程仓库。 标签 repositories标签让我们指定从哪些远程仓库中下载项目的依赖项。当Maven需要下载依赖项时,它将首先在本地仓库中查…

    Java 2023年5月20日
    00
  • Spring gateway + Oauth2实现单点登录及详细配置

    以下是 “Spring Gateway + Oauth2 实现单点登录及详细配置”的完整攻略。 1. 概述 单点登录(Single Sign-On,简称 SSO)是企业级应用系统中经常用到的功能之一。在现代应用架构中,前后端的分离和微服务架构的流行,使得如何实现 SSO 变得更为复杂。本文将详细介绍如何使用 Spring Gateway 和 Spring S…

    Java 2023年5月20日
    00
  • jsp测试函数的运行速度方法

    当我们需要测试一个JSP函数的运行速度时,一种简单有效的方法是使用Java的System.currentTimeMillis()方法,通过计算函数的开始和结束时间来统计函数的执行时间。 下面是实现方法的步骤: 第一步:定义方法 首先,我们需要为即将进行测试的函数添加一个计时器,以便在函数执行开始和结束时记录时间。可以添加一个名为“currentTime”的变…

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