`

Struts2的上传文件功能实现

    博客分类:
  • SSH
阅读更多
package com.sterning; 

import java.io.File; 

import javax.servlet.ServletContext; 

import org.apache.commons.io.FileUtils; 
import org.apache.struts2.util.ServletContextAware; 

import com.opensymphony.xwork2.ActionSupport; 

public class StrutsFileUpload extends ActionSupport implements 
        ServletContextAware { 

    private File upload;// 实际上传文件 

    private String uploadContentType; // 文件的内容类型 

    private String uploadFileName; // 上传文件名 

    private String fileCaption;// 上传文件时的备注 

    private ServletContext context; 

    public String execute() throws Exception { 

        try { 
            
            String targetDirectory = context.getRealPath("/upload"); 
            String targetFileName = uploadFileName; 
            File target = new File(targetDirectory, targetFileName); 
            FileUtils.copyFile(upload, target);            
            
            setUploadFileName(target.getPath());//保存文件的存放路径 
        } catch (Exception e) { 

            addActionError(e.getMessage()); 

            return INPUT; 
        } 

        return SUCCESS; 

    } 

    public String getFileCaption() { 
        return fileCaption; 
    } 

    public void setFileCaption(String fileCaption) { 
        this.fileCaption = fileCaption; 
    } 

    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 void setServletContext(ServletContext context) { 
        this.context = context; 
    } 

} 

 

<%@ page language="java" contentType="text/html; charset=GB2312"%>   
<%@ taglib prefix="s" uri="/struts-tags" %>   
<html> 
    <head> 
        <title>文件上传示例</title> 
        <link href="<s:url value="/css/main.css"/>" rel="stylesheet" 
            type="text/css" /> 

    </head> 

    <body> 

        <s:actionerror /> 
        <s:fielderror /> 
        <s:form action="doUpload" method="POST" enctype="multipart/form-data"> 
            <tr> 
                <td colspan="2"> 
                    <h1> 
                        文件上传示例 
                    </h1> 
                </td> 
            </tr> 

            <s:file name="upload" label="上传的文件" /> 
            <s:textfield name="fileCaption" label="备注" /> 
            <s:submit value="上   传"/> 
        </s:form> 
    </body> 
</html> 

 

<%@ page language="java" contentType="text/html; charset=GB2312"%>  
<%@ taglib prefix="s" uri="/struts-tags"%> 
<html> 
    <head> 
        <title>上传成功</title> 
        <link href="<s:url value="/css/main.css"/>" rel="stylesheet" 
            type="text/css" /> 
    </head> 

    <body> 
        <table class="wwFormTable"> 
            <tr> 

                <td colspan="2"> 
                    <h1> 
                        上传成功 
                    </h1> 
                </td> 
            </tr> 

            <tr> 
                <td class="tdLabel"> 
                    <label for="doUpload_upload" class="label"> 
                        内容类型: 
                    </label> 
                </td> 
                <td> 
                    <s:property value="uploadContentType" /> 
                </td> 
            </tr> 

            <tr> 
                <td class="tdLabel"> 
                    <label for="doUpload_upload" class="label"> 
                        文件路径: 
                    </label> 
                </td> 
                <td> 
                    <s:property value="uploadFileName" /> 
                </td> 
            </tr> 


            <tr> 
                <td class="tdLabel"> 
                    <label for="doUpload_upload" class="label"> 
                        临时文件: 
                    </label> 
                </td> 
                <td> 
                    <s:property value="upload" /> 
                </td> 
            </tr> 

            <tr> 
                <td class="tdLabel"> 
                    <label for="doUpload_upload" class="label"> 
                        备注: 
                    </label> 
                </td> 
                <td> 
                    <s:property value="fileCaption" /> 
                </td> 
            </tr> 


        </table> 

    </body> 
</html> 

 

<?xml version="1.0" encoding="UTF-8" ?> 
<!DOCTYPE struts PUBLIC 
    "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN" 
    "http://struts.apache.org/dtds/struts-2.0.dtd"> 

<struts> 
    <constant name="struts.devMode" value="true" /> 
    <constant name="struts.i18n.encoding" value="GB2312" /> 

    <package name="NG" namespace="/" extends="struts-default"> 
        <action name="showUpload"> 
            <result>/upload.jsp</result> 
        </action> 
        
        <action name="doUpload" class="com.sterning.StrutsFileUpload"> 
            <result name="input">/upload.jsp</result> 
            <result>/upload_success.jsp</result> 
        </action> 
    </package> 

</struts> 

 

<?xml version="1.0" encoding="UTF-8"?> 
<web-app id="WebApp_ID" version="2.4" 
    xmlns="http://java.sun.com/xml/ns/j2ee" 
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
    xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd"> 

    <display-name>customization</display-name> 

    <filter> 
        <filter-name>struts-cleanup</filter-name> 
        <filter-class> 
            org.apache.struts2.dispatcher.ActionContextCleanUp 
        </filter-class> 
    </filter>  


    <filter> 
        <filter-name>struts2</filter-name> 
        <filter-class> 
            org.apache.struts2.dispatcher.FilterDispatcher 
        </filter-class> 
    </filter> 


    <filter-mapping> 
        <filter-name>struts-cleanup</filter-name> 
        <url-pattern>/*</url-pattern> 
    </filter-mapping> 


    <filter-mapping> 
        <filter-name>struts2</filter-name> 
        <url-pattern>/*</url-pattern> 
    </filter-mapping> 

</web-app> 

 

分享到:
评论

相关推荐

    struts2实现文件上传下载

    本篇文章将详细探讨如何在Struts2框架下实现文件的上传与下载。 首先,我们需要了解Struts2中的文件上传机制。Struts2提供了`FileUploadInterceptor`拦截器来处理文件上传请求。在处理文件上传时,开发者需要在...

    struts实现的文件上传下载功能

    在这个特定的场景中,我们关注的是如何使用Struts来实现文件的上传和下载功能。这个功能对于任何Web应用来说都是非常重要的,因为它允许用户交互地处理数据和资源。 首先,我们需要理解文件上传的基本流程。在...

    实现struts2的文件上传文件功能

    在Struts2中,实现文件上传功能是一项常见的需求,它允许用户通过Web界面上传文件到服务器。以下是对该主题的详细解释: 1. **Struts2文件上传原理** Struts2使用Apache的Commons FileUpload库来处理文件上传。这...

    Struts2实现文件上传功能

    下面将详细阐述如何使用Struts2来实现文件上传功能。 1. **Struts2文件上传组件** Struts2框架集成了一个名为`struts2-convention-plugin`的插件,它提供了文件上传的支持。主要依赖于`Commons FileUpload`和`...

    struts2文件上传下载源代码

    这篇博客文章提供的"struts2文件上传下载源代码"旨在帮助开发者理解和实现这些功能。 文件上传功能允许用户从他们的设备上传文件到服务器。在Struts2中,这通常通过表单实现,表单包含一个`&lt;input type="file"&gt;`...

    struts2 实现文件批量上传

    本项目实现了使用Struts2进行文件批量上传的功能,这涉及到几个关键的技术点,包括文件上传组件的选择、前端表单设计、后端处理逻辑以及存储策略。 1. **文件上传组件**:在Struts2中,我们通常使用`Commons ...

    struts2实现多文件上传功能

    Struts2提供了完善的文件上传支持,让我们来详细探讨如何在Struts2中实现多文件上传。 首先,我们需要在Struts2的配置文件(struts.xml)中启用文件上传的支持。这通常涉及到添加`&lt;constant&gt;`标签来设置`struts....

    基于Struts2的文件上传下载功能的完整源代码。

    在基于Struts2的文件上传下载功能中,它提供了处理用户上传文件和提供文件下载的服务。这个完整的源代码是实现这些功能的一个实例,经过测试确保了其正确性和可用性。 首先,我们要理解Struts2中的Action类。Action...

    Struts2实现文件上传

    在这个“Struts2实现文件上传”的主题中,我们将深入探讨如何利用Struts2框架来实现在Web应用中的文件上传功能。 首先,我们注意到一个细节描述:“private String uploadContextType;应更正为private String ...

    struts2上传文件源代码

    在这个“struts2上传文件源代码”中,我们将深入探讨Struts2如何实现文件上传功能,以及涉及到的相关知识点。 首先,文件上传是Web应用中常见的功能,它允许用户从本地计算机选择文件并将其发送到服务器。在Struts2...

    Struts2实现文件的上传下载

    Struts2是一个强大的MVC(Model-View-Controller)框架,广泛应用于Java Web开发中,提供了丰富的功能,包括文件的上传和下载。在本项目中,我们关注的是如何使用Struts2来实现实时的文件交互操作,即文件的上传与...

    Struts2多个文件上传

    首先,要实现Struts2的文件上传,必须引入必要的依赖库。主要需要两个Apache Commons库:`commons-fileupload-1.2.2.jar`和`commons-io-2.0.1.jar`。这两个库提供了文件上传的基础功能,使得Struts2能够处理`...

    swfuplaod+struts2实现多文件上传

    结合Struts2,一个流行的Java Web框架,可以构建出高效、用户友好的文件上传功能。下面将详细介绍如何利用SWFUpload与Struts2来实现多文件上传。 **一、SWFUpload组件介绍** SWFUpload 是一个JavaScript库,它利用...

    struts2实现多文件上传下载

    网上的Struts2进行的文件下载一般都是单文件或者固定的文件,并没有(很少)实现随意文件的下载的例子 提供多文件上传,上传成功后,提供刚上传的文件下载功能(其他的都可以在其上面进行扩充) 多文件 上传 下载...

    struts1和struts2分别实现文件上传下载功能

    Struts1和Struts2是两个非常著名的Java Web框架,它们都提供了处理文件上传和下载的功能,但实现方式有所不同。本文将深入探讨这两个框架在文件操作方面的具体实现。 首先,让我们了解一下Struts1中的文件上传功能...

    使用struts2实现的文件上传功能

    在Struts2框架中实现文件上传功能是一项常见的任务,这通常涉及到用户通过表单提交文件,服务器端接收并处理这些文件。在这个场景中,我们将探讨如何使用Struts2来实现这一功能。 首先,你需要在项目中引入Struts2...

    struts2上传文件进度条显示

    需要注意的是,由于Struts2默认的文件上传机制不支持进度更新,因此可能需要使用第三方库,如Apache Commons FileUpload,或者使用Struts2的插件如Struts2 ProgressTag插件来实现更复杂的进度显示功能。 总的来说,...

    struts实现文件上传功能

    通过Struts2框架,我们可以方便地实现文件上传功能,为用户提供上传文件或图片的服务。同时,需要注意安全性问题,防止潜在的安全风险。在实际开发中,还需要结合业务需求进行定制化的处理,例如添加文件预览、进度...

    JavaEE Struts文件上传

    2. **添加Struts2插件**:Struts2的文件上传功能依赖于`struts2-convention-plugin`和`struts2-core`等库。在`struts.xml`配置文件中,需要启用Multipart解析器,例如添加`&lt;constant name="struts.multipart.parser...

    struts2文件上传例子.rar

    在“struts2文件上传例子.rar”这个项目中,开发者已经使用Struts2.0框架实现了一个简单的文件上传功能。MyEclipse 6.6是一个集成开发环境,支持Java EE项目开发,可以直接导入该项目进行运行和调试。 首先,我们...

Global site tag (gtag.js) - Google Analytics