`
lenj
  • 浏览: 37675 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
最近访客 更多访客>>
社区版块
存档分类
最新评论

struts实现多文件上传

阅读更多
fileUpload.jsp代码如下:
<%@ page language="java" pageEncoding="gb2312" contentType="text/html;charset=gb2312"%>
<%@ taglib uri="/WEB-INF/struts-bean.tld" prefix="bean"%>
<%@ taglib uri="/WEB-INF/struts-html.tld" prefix="html"%>

<html>
    <head>
        <title>JSP for FileUploadForm form</title>
        <script language="javascript" type="text/javascript">
      
          var i=0;
          function   addInput()...{
            if(i>=0)...{
                  var attach = "testFile(" + i + ")";
                  if(createInput(attach))
                      i=i+1;
              }
             
          }
          function deleteInput()...{
                  if(i>=1)...{
                    i=i-1;
                    if(!removeInput())
                        i=i+1;
                }
          }
         
          function createInput(nm)...{  
                var p=document.createElement("div");
              var  aElement=document.createElement("input");  
             aElement.name=nm;
             aElement.id=nm;
             aElement.type="file";
             aElement.size="50";
              //aElement.value="thanks";  
             //aElement.onclick=Function("asdf()"); 
             p.appendChild(aElement);
             if(document.getElementById("upload").appendChild(p) == null)
             ...{
                      return false;
                      }
               return true;
          } 
   

          function removeInput(nm)...{
               var aElement = document.getElementById("upload");
                if(aElement.removeChild(aElement.lastChild) == null)
                    return false;
                return true;  
          } 
     
    function check()...{
            var aElement = document.getElementById("upload");
              var index =  aElement.children.length;
              var fso=new ActiveXObject("Scripting.FileSystemObject");
              var filesize=0;
              while(index>0)...{
             
              var s = aElement.children[index-1].children[0].value;
             
              if(s=='')...{
              alert('请为'+i+'个输入选择文件');
              return false ;
              }else...{
              var f=fso.GetFile(s);
              filesize=filesize+f.size
              }
              index = index-1;
          }
          if(filesize>15728640)...{
          alert('所传文件总大小不能超过15M');
          return false;
          }
          return true ;
       }
    </script>
       
    </head>
    <body>
    <center>
        <html:form action="/fileUpload" method="post"
        enctype="multipart/form-data" onsubmit="return check()">
        <%--
            enctype属性可设置或返回表单内容的MIME类型,如果表单没有enctype属性,默认的值为:"application/x-www-form-urlencoded",
             当内容为“文件”,值应该为"multipart/form-data".
            application/x-www-form-urlencoded: 窗体数据被编码为名称/值对。这是标准的编码格式。
            multipart/form-data: 窗体数据被编码为一条消息,页上的每个控件对应消息中的一个部分。
            text/plain: 窗体数据以纯文本形式进行编码,其中不含任何控件或格式字符。
         --%>
            <span id="upload"></span><br>
            <input type="button" name="button" value="添加附件" onclick="addInput()">&nbsp;&nbsp;
            <input type="button" name="button" value="删除附件" onclick="deleteInput()">
            <br><font color=red>上传文件总大小不能超过15M</font><br>
            <html:submit/><html:cancel/>
        </html:form>
    </center>
    </body>
</html>


FileUploadForm.java代码如下:
/**//*
* Generated by MyEclipse Struts
* Template path: templates/java/JavaClass.vtl
*/
package com.iss.struts.form;

import java.util.ArrayList;

import javax.servlet.http.HttpServletRequest;
import org.apache.struts.action.ActionErrors;
import org.apache.struts.action.ActionForm;
import org.apache.struts.action.ActionMapping;
import org.apache.struts.upload.FormFile;

/** *//**
* MyEclipse Struts
* Creation date: 07-26-2007
*
* XDoclet definition:
* @struts.form name="fileUploadForm"
*/
public class FileUploadForm extends ActionForm ...{
   
    private ArrayList formFiles = new ArrayList();


    public void setTestFile(String iIndex, FormFile formFile)
    ...{
      this.formFiles.add(formFile);
    }

    public FormFile getTestFile(String iIndex)
    ...{
      return (FormFile) formFiles.get(Integer.parseInt(iIndex));
    }

    public ArrayList getTestFiles()
    ...{
      return this.formFiles;
    }

    /** *//**
     * Method validate
     * @param mapping
     * @param request
     * @return ActionErrors
     */
    public ActionErrors validate(ActionMapping mapping,
            HttpServletRequest request) ...{
        // TODO Auto-generated method stub
        return null;
    }

    /** *//**
     * Method reset
     * @param mapping
     * @param request
     */
    public void reset(ActionMapping mapping, HttpServletRequest request) ...{
        // TODO Auto-generated method stub
    }
}
FileUploadAction.java代码如下:
/**//*
* Generated by MyEclipse Struts
* Template path: templates/java/JavaClass.vtl
*/
package com.iss.struts.action;

import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.util.ArrayList;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
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 com.iss.struts.form.FileUploadForm;

/** *//**
* MyEclipse Struts
* Creation date: 07-26-2007
*
* XDoclet definition:
* @struts.action path="/fileUpload" name="fileUploadForm" input="/form/fileUpload.jsp" scope="request" validate="true"
*/
public class FileUploadAction extends Action ...{
    /**//*
     * Generated Methods
     */

    /** *//**
     * Method execute
     * @param mapping
     * @param form
     * @param request
     * @param response
     * @return ActionForward
     * @throws IOException
     * @throws FileNotFoundException
     */
    public ActionForward execute(ActionMapping mapping, ActionForm form,
            HttpServletRequest request, HttpServletResponse response) throws FileNotFoundException, IOException ...{
        FileUploadForm fileUploadForm = (FileUploadForm) form;
        ArrayList myFiles=fileUploadForm.getTestFiles();
        if(myFiles.size()>0)...{
             String sysroot = servlet.getServletContext()
                .getInitParameter("sysroot");
           
            for(int j=0;j<myFiles.size();j++)...{ 
                
                   FormFile uploadFile = (FormFile)myFiles.get(j);  
                   String fname=uploadFile.getFileName();
                 
                 
                   InputStream streamIn=uploadFile.getInputStream();
                      OutputStream streamOut=new FileOutputStream(sysroot+"/"+fname);
                      int bytesRead=0;
                      byte[] buffer=new byte[8192];
                      while((bytesRead=streamIn.read(buffer, 0, 8192))!=-1)...{
                          streamOut.write(buffer, 0, bytesRead);
                      }
                      streamOut.close();
                      streamIn.close();
            }

        }
        return mapping.findForward("success");
    }
}
success.jsp代码如下:
<%@ page language="java" pageEncoding="GB18030"%>

<%@ taglib uri="/WEB-INF/struts-bean.tld" prefix="bean" %>
<%@ taglib uri="/WEB-INF/struts-html.tld" prefix="html" %>
<%@ taglib uri="/WEB-INF/struts-logic.tld" prefix="logic" %>


<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>
   
    <title>success.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>
    上传文件成功! <br>
  </body>
</html>

struts-config.xml配置如下:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE struts-config PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 1.1//EN" "http://jakarta.apache.org/struts/dtds/struts-config_1_1.dtd">

<struts-config>
  <data-sources />
  <form-beans >
    <form-bean name="fileUploadForm" type="com.iss.struts.form.FileUploadForm" />

  </form-beans>

  <global-exceptions />
  <global-forwards />
  <action-mappings >
    <action
      attribute="fileUploadForm"
      input="/form/fileUpload.jsp"
      name="fileUploadForm"
      path="/fileUpload"
      scope="request"
      type="com.iss.struts.action.FileUploadAction">
      <forward name="success" path="/success.jsp" />
    </action>

  </action-mappings>

  <message-resources parameter="com.iss.struts.ApplicationResources" />
</struts-config>


web.xml配置如下:
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns="http://java.sun.com/xml/ns/j2ee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" version="2.4" xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee   http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">
   <context-param>
        <param-name>sysroot</param-name>
        <param-value>E:/FileManage</param-value>
    </context-param>
  <servlet>
    <servlet-name>action</servlet-name>
    <servlet-class>org.apache.struts.action.ActionServlet</servlet-class>
    <init-param>
      <param-name>config</param-name>
      <param-value>/WEB-INF/struts-config.xml</param-value>
    </init-param>
    <init-param>
      <param-name>debug</param-name>
      <param-value>3</param-value>
    </init-param>
    <init-param>
      <param-name>detail</param-name>
      <param-value>3</param-value>
    </init-param>
    <load-on-startup>0</load-on-startup>
  </servlet>
  <servlet-mapping>
    <servlet-name>action</servlet-name>
    <url-pattern>*.do</url-pattern>
  </servlet-mapping>
</web-app>

分享到:
评论

相关推荐

    struts实现多文件上传1.txt

    Struts框架作为Java Web开发中非常成熟的一个MVC框架,支持多种方式实现文件上传功能。本文将详细介绍如何利用Struts框架实现多文件上传。 #### 二、Struts框架简介 Struts是一个开源的Java Web应用框架,基于MVC...

    struts实现多文件上传2.txt

    ### Struts 实现多文件上传知识点解析 #### 一、Struts框架简介 在深入了解如何使用Struts框架实现多文件上传之前,我们首先简要回顾一下Struts框架的基础概念及其重要性。 Struts是一个开源的MVC(Model-View-...

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

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

    struts2实现多文件上传下载

    文件上传比较多,多文件上传少一点 文件下载很少的,看似简单,实则不然 网上的Struts2进行的文件下载一般都是单文件或者固定的文件,并没有(很少)实现随意文件的下载的例子 提供多文件上传,上传成功后,提供...

    struts2实现文件上传下载

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

    Struts2多个文件上传

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

    一个Struts1多文件上传实例(附Form中传List示例)

    本实例主要探讨如何在Struts1中实现多文件上传功能,并结合Form中传递List类型的数据,这对于理解MVC模式下的文件处理和数据传递有重要作用。我们将深入讨论以下几个关键知识点: 1. **Struts1框架基础**: Struts...

    swfuplaod+struts2实现多文件上传

    在实现文件上传时,必须注意以下安全问题: 1. **文件类型检查**:限制上传的文件类型,防止恶意用户上传可执行文件或脚本。 2. **文件名重命名**:避免文件覆盖或路径遍历攻击,对上传的文件名进行重命名。 3. **...

    struts2实现多文件上传功能

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

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

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

    struts1实现文件上传

    ### Struts1 实现文件上传的关键技术点 在Struts1框架中实现文件上传功能是一项常见但又具有一定技术挑战的任务。下面将详细解析文件上传的实现过程,包括关键类的使用、文件处理逻辑以及异常处理等方面。 #### ...

    Struts2实现文件上传

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

    struts多文件上传

    以下将详细介绍Struts实现多文件上传的过程、所需技术以及相关的注意事项。 首先,我们需要了解Struts2中的文件上传依赖于`commons-fileupload`和`commons-io`这两个Apache Commons库。`commons-fileupload`用于...

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

    Struts 是一个基于MVC(Model-View-Controller)...总结,Struts 实现文件上传涉及到配置、表单设计、Action处理和安全控制等多个环节。理解并熟练掌握这些知识点,能帮助开发者在实际项目中高效地处理文件上传需求。

    struts2 实现文件批量上传

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

    Struts1实现的文件上传

    在这个“Struts1实现的文件上传”项目中,我们将深入探讨如何在Struts1框架下实现文件上传功能,并不涉及文件下载的部分。 首先,理解文件上传的基本流程是至关重要的。在Web应用中,用户通过HTML表单选择本地文件...

    struts2实现文件上传(单个+多个文件上传

    ### Struts2实现文件上传(单个+多个文件上传) #### 一、单个文件上传 在Struts2框架中实现文件上传是一项常见的需求。本文将详细介绍如何在Struts2中实现单个文件的上传。 ##### JSP 页面设计 首先,我们需要在...

    Struts1实现文件上传源码

    在这个“Struts1实现文件上传源码”实例中,我们将深入探讨如何利用Struts1框架来处理文件上传操作。 在Web应用中,文件上传功能是非常常见的,比如用户上传头像、提交文档等。Struts1提供了ActionForm类和一系列...

    用Struts框架实现多文件上传功能(初学者的入门项目案例)

    要实现文件上传,你需要完成以下步骤: 1. **配置Struts2上传插件**: 在`struts.xml`配置文件中,添加上传插件的配置,确保它启用并指定了临时文件存储路径: ```xml &lt;constant name="struts.multipart....

Global site tag (gtag.js) - Google Analytics