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的反射机制

    图文详解Java的反射机制 什么是反射机制 Java中的一个重要概念就是反射机制。简单的来说,反射机制是指在运行时动态地获取类的信息以及使用类的信息的能力。通过反射,我们可以在运行时获取类的属性、方法、构造函数等信息,并且可以在运行时动态地进行类的实例化等操作。有了这些能力,我们可以更加灵活地使用Java编写程序。 反射机制的基本用法 获取类对象 我们首先需…

    Java 2023年5月26日
    00
  • 教你如何用Eclipse创建一个Maven项目

    我将为你详细讲解“教你如何用Eclipse创建一个Maven项目”的完整攻略,过程中将涵盖以下内容: 安装Eclipse和Maven 创建Maven项目 添加依赖 编译运行 以下是具体步骤: 1. 安装Eclipse和Maven 首先,你需要安装Eclipse和Maven。你可以从官方网站下载Eclipse,也可以通过Eclipse Marketplace搜…

    Java 2023年5月19日
    00
  • 为何Java8需要引入新的日期与时间库

    Java8引入新的日期与时间库的原因是由于Java原有的日期和时间类库(如java.util.Date和java.util.Calendar)存在如下问题: 可变性:原有的日期和时间类库中的很多类(如java.util.Date和java.util.Calendar)都是可变的,即它们的实例可以被修改,这可能会导致并发问题,例如在多个线程间共享时。 不够清晰…

    Java 2023年5月20日
    00
  • Java 网络编程 —— ServerSocket 详解

    构造 ServerSocket ServerSocket 的构造方法有以下几种重载形式 ServerSocket() throws IOException ServerSocket(int port) throws IOException ServerSocket(int port, int backlog) throws IOException Serve…

    Java 2023年5月2日
    00
  • 详解springboot springsecuroty中的注销和权限控制问题

    下面是详解springboot springsecuroty中的注销和权限控制问题的完整攻略。 1. 概述 Spring Security是Spring框架的安全框架,可以实现身份认证、权限控制、防护攻击等功能。在Spring Boot中,可以使用Spring Security来保护web应用程序的安全性。而注销和权限控制是Spring Security中常…

    Java 2023年5月20日
    00
  • Spring Security认证器实现过程详解

    Spring Security认证器实现过程详解 Spring Security是用于保护Web应用程序的开放源代码框架。它可以提供基于角色的安全性,对用户进行身份验证和访问控制来保护应用程序。本文将详细介绍Spring Security认证器实现的过程。 一. Spring Security认证器 Spring Security提供了一个框架来处理所有We…

    Java 2023年6月3日
    00
  • Spring Data JPA实现持久化存储数据到数据库的示例代码

    以下是详细的攻略: 一、什么是Spring Data JPA Spring Data JPA是Spring框架中对JPA(Java Persistence API)规范的封装。JPA是一种ORM(Object Relational Mapping)框架,用于将Java对象映射到关系型数据库。 Spring Data JPA对JPA的封装简化了数据访问层的开发…

    Java 2023年5月20日
    00
  • java与js代码互调示例代码

    当需要在Java与JavaScript之间进行代码互调时,可以使用Java在JavaScript中定义的函数来实现该功能。以下是使用Java代码在JavaScript中定义一个函数,并从JavaScript调用该函数的示例代码: 第一步是为Java代码编写一个类,在类中编写一个用于输出信息到控制台的函数: package com.example; publi…

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