`

struts实现上传下载

阅读更多
上传页面的实现代码如下
upload.jsp
<%@ page language="java" pageEncoding="UTF-8"%>

<%@ taglib uri="http://struts.apache.org/tags-bean" prefix="bean" %>
<%@ taglib uri="http://struts.apache.org/tags-html" prefix="html" %>
<%@ taglib uri="http://struts.apache.org/tags-logic" prefix="logic" %>
<%@ taglib uri="http://struts.apache.org/tags-tiles" prefix="tiles" %>


<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html:html lang="true">
  <head>
    <html:base />
   
    <title>upload.jsp</title>

    <meta http-equiv="pragma" content="no-cache">
    <meta http-equiv="cache-control" content="no-cache">
    <meta http-equiv="expires" content="0">
    <meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
    <meta http-equiv="description" content="This is my page">
    <!--
    <link rel="stylesheet" type="text/css" href="styles.css">
    -->

  </head>
 
  <body>
    <html:form    action="" method="post" enctype="multipart/form-data">
        <table>
            <tr>
                <td align="center" colspan="2">
                    <font size="4">Please Enter the Following Details</font>
                </td>
            </tr>
            <tr>
                <td align="left" colspan="2">
                    <font color="red"><htm:errors /></font>
                </td>
            </tr>
            <tr>
                <td align="right">
                    FileName
                </td>
                <td align="left">
                    <html:file property="theFile"></html:file>
                </td>
            </tr>
            <tr>
                <td align="center" colspan="2">
                    <html:submit>Upload File</html:submit>
                </td>
            </tr>
        </table>
    </html:form>
  </body>
</html:html>



其中struts通过表单实现页面的上传时,需要在form表单把enctype="multipart/form-data",使用了这个属性后,HttpServletRequest对象的getParameter()方法就无法直接得到用户所提交的其他数据。好在struts对这种格式编码的数据进行了处理,使得用户提交的数据仍然可以被直接设置成actionForm种对应的值。

ActionForm:



package ActionForm;

import org.apache.struts.action.ActionForm;
import org.apache.struts.upload.FormFile;

public class UploadForm extends ActionForm {
   
    private FormFile theFile;

    public FormFile getTheFile() {
        return theFile;
    }

    public void setTheFile(FormFile theFile) {
        this.theFile = theFile;
    }
}



UploadAction文件



package com.xpjjy.struts;

import java.io.File;
import java.io.FileOutputStream;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;

import org.apache.struts.action.Action;
import org.apache.struts.action.ActionForm;
import org.apache.struts.action.ActionForward;
import org.apache.struts.action.ActionMapping;
import org.apache.struts.upload.FormFile;

import ActionForm.UploadForm;

public class UploadAction extends Action {

    public ActionForward execute(ActionMapping mapping, ActionForm form,
            HttpServletRequest request, HttpServletResponse response)
            throws Exception{
        UploadForm uploadForm = (UploadForm) form;
       
        FormFile file = uploadForm.getTheFile();
        String contentType = file.getContentType();
        String fileName = file.getFileName();
        int fileSize = file.getFileSize();
        byte[] fileData = file.getFileData();
       
        System.out.println("Contentype: "+ contentType);
        System.out.println("FileName: " + fileName);
        System.out.println("File Size "+ fileSize);
       
        FileOutputStream out = new FileOutputStream(new File("D:\\"+fileName));
        out.write(fileData);
        out.close();
       
        HttpSession session = request.getSession();
        session.setAttribute("contentType", contentType);
        session.setAttribute("fileName", fileName);
        session.setAttribute("fileSize", Integer.valueOf(fileSize));
       
        return mapping.findForward("download");
    }
}




httpSession的相关资料空间有

download.jsp



<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<%@ taglib uri="http://struts.apache.org/tags-html" prefix="html" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Download and Open the File</title>
</head>
<body>
    <html:link action="/download">Download</html:link>
    <br>
    <html:link action="/open">Open</html:link>
</body>
</html>




DownloadFileAction



package com.xpjjy.struts;

import java.io.File;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;

import org.apache.struts.action.ActionForm;
import org.apache.struts.action.ActionMapping;
import org.apache.struts.actions.DownloadAction;

public class DownloadFileAction extends DownloadAction {

    protected StreamInfo getStreamInfo(ActionMapping mapping, ActionForm form,
            HttpServletRequest request, HttpServletResponse response) throws Exception {
        HttpSession session = request.getSession();
        String contentType = (String)session.getAttribute("contentType");
        String fileName = (String)session.getAttribute("fileName");
       
        response.setHeader("content-disposition", "attachment; filename="+fileName);
        File file = new File("D:\\"+ fileName);
        return new FileStreamInfo(contentType,file);
    }

   
}





Strut 的配置文件 struts-config.xml



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

<struts-config>
  <form-beans>
    <form-bean name="uploadForm" type="ActionForm.UploadForm" />
  </form-beans>
  <global-exceptions />
  <global-forwards />
  <action-mappings >
    <action path="/OutputXMLAction"
            type="com.xpjjy.struts.OutputXMLAction"
            scope="request"                 
    >
            <forward name="success" path="/index.jsp" />
    </action>
    <action
      attribute="uploadForm"
      input="/upload.jsp"
      name="uploadForm"
      path="/upload"
      scope="request"
      type="com.xpjjy.struts.UploadAction"
      >
        <forward name="download" path="/download.jsp" />
    </action>
   
    <action path="/download"
            type="com.xpjjy.struts.DownloadFileAction"
            scope="request"
    >
    </action>

  </action-mappings>

  <message-resources parameter="com.xpjjy.struts.ApplicationResources" />
</struts-config>
分享到:
评论

相关推荐

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

    总结起来,使用Struts实现文件上传下载涉及前端表单设计、后端处理逻辑、文件存储策略以及安全控制等多个方面。在实践中,我们还需要考虑到性能优化和用户体验提升,例如使用异步上传、进度条展示等技术。

    使用struts实现上传下载

    综上所述,使用Struts实现文件上传和下载需要对HTTP协议、Servlet、Struts框架以及文件I/O操作有深入理解。通过合理配置和编写代码,可以轻松地在Web应用中集成这些功能。如果你遇到了具体的编程问题,可以查阅提供...

    Struts实现上传下载功能

    在实现上传下载之前,确保你的项目已经集成了Struts2框架,并且配置了相应的struts.xml配置文件。配置文件中需要包含Action的定义,这些Action将处理上传和下载请求。 2. **上传文件**: - **表单设计**:在HTML...

    struts2实现文件上传下载

    Struts2是一个强大的MVC(模型-视图-控制器)框架,广泛应用于Java ...以上就是使用Struts2框架实现文件上传下载的基本步骤和关键知识点。在实际开发中,可以根据项目需求进行调整和优化,确保功能的稳定性和安全性。

    struts2文件上传下载源代码

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

    struts实现文件上传和下载源代码

    在这个"struts实现文件上传和下载源代码"项目中,我们将会探讨如何使用Struts框架来实现在Web应用中进行文件的上传和下载功能,同时还会关注对于大文件(超过3MB)的处理策略。 1. **文件上传** 文件上传是Web应用...

    无中文乱码的Struts上传下载(任意文件上传)

    提供的压缩文件`struts实现上传下载源码及文档`应该包含了完整的实现示例,包括Action类、ActionForm、JSP页面以及使用说明。通过阅读源码和文档,你可以更深入地理解如何在实际项目中应用这些技术。 总之,解决...

    struts实现上传图片

    本文将深入探讨如何使用Struts框架实现图片上传功能,这在许多Web应用中都是一个常见且重要的需求。 ### Struts框架简介 Struts是一个开源的框架,用于创建企业级的Java Web应用。它基于Servlet和JSP技术,并遵循...

    struts与hibernate实现文件的上传与动态下载

    本篇文章将详细讲解如何利用Struts2.2和Hibernate3.6实现文件的上传与动态下载。 **一、文件上传** 1. **环境配置**:首先,你需要一个集成开发环境,例如MyEclipse8.6,并安装所需的Struts2.21、JUnit4.8.2以及...

    struts2上传下载项目

    在"struts2上传下载项目"中,我们可以深入理解如何利用Struts2实现文件的上传与下载功能。 首先,上传功能在Web应用中十分常见,比如用户在注册时上传头像,或者提交文档等。在Struts2中,我们主要借助`struts2-...

    struts 文件上传 Struts实现文件上传

    下面将详细介绍Struts 实现文件上传的相关知识点。 ### 1. Struts 框架概述 Struts 是Apache软件基金会下的一个开源项目,其主要目标是提供一个可扩展且易于维护的架构,用于构建企业级的Java Web应用。它通过分离...

    struts2上传下载实例

    这个"struts2_上传下载"实例则涵盖了多种实现这些功能的方法。 首先,Struts2的文件上传依赖于Apache的Commons FileUpload库。在配置Struts2的Action类时,需要引入相应的依赖,并在Action类中定义一个类型的字段来...

    struts2实现多文件上传下载

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

    基于Struts1.2的上传下载Demo

    本项目"基于Struts1.2的上传下载Demo"是针对该框架的一个实践示例,旨在帮助开发者理解和解决在Struts1.2环境中进行文件上传与下载的问题。 首先,让我们深入了解一下Struts1.2中的文件上传功能。在Struts1.2中,...

    JavaEE Struts文件上传

    通过分析这些文件,你可以看到一个完整的Struts2文件上传应用的结构和实现细节。 学习Struts2文件上传不仅需要掌握上述概念和技术,还需要了解文件安全性、异常处理和服务器配置等相关知识。在实际应用中,确保文件...

    struts上传与下载

    Struts是Apache软件基金会下的一个开源框架,主要应用于Java Web应用程序的开发。...在Struts中,文件上传和下载是常见的功能需求,...理解这些概念并熟练运用,你就能在Struts框架下实现高效且安全的文件上传和下载功能。

    struts2真正实现上传下载完整源代码

    本文将深入探讨如何使用Struts2来实现这一功能,并结合提供的"struts2真正实现上传下载完整源代码"进行分析。 首先,我们要了解Struts2中文件上传的基本原理。它主要依赖于Apache的Commons FileUpload库,该库处理...

    Struts2实现文件的上传下载

    总的来说,Struts2通过内置的拦截器和便捷的API,使得文件上传下载变得简单而高效。尽管本项目没有使用异步(AJAX)方式,但在实际应用中,结合AJAX进行无刷新的文件上传和下载也是常见的优化手段,可以提升用户体验...

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

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

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

    总的来说,Struts1和Struts2在文件上传下载上的实现各有特点,Struts1更注重于配置,而Struts2则提供了更为灵活的编程模型。理解这两个框架的处理机制有助于你更好地实现和优化Web应用中的文件操作功能。在实际项目...

Global site tag (gtag.js) - Google Analytics