`
anson_xu
  • 浏览: 514709 次
  • 性别: Icon_minigender_1
  • 来自: 惠州
社区版块
存档分类

struts不定文件上传结合我的情况做的修改

阅读更多
以下内容为转自网络,要注意的是jsp页面中<html:form>我名称要正确.还有就是修改了public UploadFile getUploadFile(int index){
   int size = myFiles.size();
   if (index > size-1) {
   for (int i=0;i<index-size+1;i++){
   myFiles.add(new UploadFile());
    }
   }
加了for循环,没加之前超过三个文件会报错.

以下是全部内容

Form部分:

public class MultiUploadForm extends ActionForm {
    private List myFiles;
    public MultiUploadForm(){
        myFiles = new ArrayList();
        //为了能够在页面初始显示一个file
        myFiles.add(new UploadFile());
    }
    public List getMyFiles() {
        return myFiles;
    }   

  //注意这个方法的定义

   public UploadFile getUploadFile(int index){
   int size = myFiles.size();
   if (index > size-1) {
   for (int i=0;i<index-size+1;i++){
   myFiles.add(new UploadFile());
    }
   }
    public void setMyFiles(List myFiles) {
        this.myFiles = myFiles;
    }
}

Dataset部分:
public class UploadFile implements Serializable {
    private FormFile file;
    public FormFile getFile() {
        System.out.println("run in uploadFile.getFile()");
        return file;
    }
    public void setFile(FormFile file) {
        this.file = file;
    }
}
Action部分:
public class MultiUploadAction extends Action {
    public ActionForward execute(ActionMapping mapping, ActionForm form,
                                 HttpServletRequest request,
                                 HttpServletResponse response) {
        MultiUploadForm multiUploadForm = (MultiUploadForm) form;
        List myFiles = multiUploadForm.getMyFiles();
        for(int i =0;i<myFiles.size();i++){
            UploadFile uploadFile = (UploadFile)myFiles.get(i);
            FormFile file = uploadFile.getFile();

            if(file==null){
                System.out.println("file is null");
            }
            else{

                //能运行到这里,就可以使用单个文件上传的方法进行上传了。循环而已
                System.out.println("filename:::" + file.getFileName());
                System.out.println("file size:::" + file.getFileSize());
            }
        }

        return null;
    }
}

JSP部分:

<%@ page contentType="text/html; charset=GBK" %>
<%@ taglib uri="/WEB-INF/struts-html.tld" prefix="html" %>
<%@ taglib uri="/WEB-INF/struts-nested.tld" prefix="nested" %>

<html:html>
<head>
<title>
multiUploadDemo
</title>
</head>
<script language="javascript" type="">
   var num = 0;
   function addFile(){
      var innerHTML = multiUploadForm.innerHTML;
      var signal = "<TD id=tdTarget>";
      var signalLen = signal.length;
      var targetIndex = innerHTML.indexOf(signal);

      var preHTML = innerHTML.substring(0,(targetIndex-6));
      var subHTML = innerHTML.substring(targetIndex-6);
      num++;
      var insertHTML = "<TR><TD><input type=file name=uploadFile["+ num + "].file value=''></TD>";
      innerHTML = preHTML + insertHTML + subHTML;

      multiUploadForm.innerHTML = innerHTML;
      //alert(multiUploadForm.innerHTML);
   }
   function upload(){
     multiUploadForm.submit();
   }
</script>
<body bgcolor="#ffffff">
<html:form method="post" action="/multiUploadAction.do" enctype="multipart/form-data">
<table border="1">
<TBODY>
<br><br>

this is file
  <nested:iterate id="uploadFile" property="myFiles" name="multiUploadForm" indexId="index">
      <nested:nest property="uploadFile">
        <nested:file property="file" name="uploadFile" indexed="true"/>
      </nested:nest>
  </nested:iterate>


<TR>
  <input type="button" name="btnAddFile" value="Add File" onclick="addFile()"/>
  <TR><TD id="tdTarget"></TD>
  <input type="button" name="btnUpload" value="upload" onclick="upload()">
</TBODY>
</table>
</html:form>
</body>
</html:html>

struts-config.xml部分:

  <form-beans>
    <form-bean name="multiUploadForm" type="MultiUploadForm" />
  </form-beans>

<action name="multiUploadForm" path="/multiUploadAction" type="MultiUploadAction" />

以上只是对动态多文件上传部分进行了描述,只是一个Demo。大家可以根据自己的需求变通的调整一下。

肯定大家有更好的方法,欢迎讨论。




Trackback: http://tb.blog.csdn.net/TrackBack.aspx?PostId=630083

分享到:
评论

相关推荐

    struts2文件上传下载源代码

    在Struts2中,文件上传和下载是常见的功能需求,特别是在处理用户交互和数据交换时。这篇博客文章提供的"struts2文件上传下载源代码"旨在帮助开发者理解和实现这些功能。 文件上传功能允许用户从他们的设备上传文件...

    struts2实现文件上传下载

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

    struts2文件上传jar

    这个压缩包包含了实现Struts2文件上传所需的全部jar包,这些库文件对于理解和实现文件上传功能至关重要。 首先,我们要了解Struts2文件上传的基本流程。当用户通过表单提交包含文件输入字段的请求时,Struts2框架会...

    JavaEE Struts文件上传

    JavaEE Struts 文件上传是Web开发中的一个常见需求,它允许用户从客户端向服务器传输文件。Struts作为JavaEE框架的一部分,提供了强大的功能来处理这种交互。以下是对这个主题的详细解析。 首先,理解文件上传的...

    Struts AJAX文件上传

    Struts AJAX 文件上传是一种在Java Web开发中实现异步数据传输的技术,它结合了Struts框架和AJAX(Asynchronous JavaScript and XML)的优势,提供了一种用户友好的、无刷新的文件上传方式。这种方式可以显著提升...

    struts2文件上传

    Struts2 文件上传是Web开发中的一个重要功能,它允许用户从他们的本地计算机向服务器传输文件。在Struts2框架中,文件上传是通过特定的拦截器实现的,这些拦截器处理了文件上传请求并提供了安全性和大小限制。下面将...

    struts2文件上传实例

    10. **测试**:在开发完成后,务必进行充分的测试,包括正常情况下的上传、边界条件测试(如上传空文件、超大文件、非法文件类型等)以及并发上传的测试。 以上是基于Struts2框架实现文件上传的基本步骤和关键知识...

    Struts2多个文件上传

    在Struts2中,文件上传功能是一个常用特性,尤其在处理用户提交的多个文件时。本文将详细讲解如何使用Struts2进行多个文件的上传,重点是使用List集合进行上传。 首先,要实现Struts2的文件上传,必须引入必要的...

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

    Struts 提供了强大的支持来处理文件上传操作。下面将详细介绍Struts 实现文件上传的相关知识点。 ### 1. Struts 框架概述 Struts 是Apache软件基金会下的一个开源项目,其主要目标是提供一个可扩展且易于维护的...

    Struts2.0文件上传原理

    Struts2.0文件上传原理主要涉及Web应用中处理用户上传文件的功能,这一过程涉及到多个步骤和技术,包括HTTP协议、Multipart/form-data编码、临时文件存储以及后台处理。以下是对Struts2.0文件上传原理的详细解释: ...

    Struts2之struts2文件上传详解案例struts011

    在Struts2中,文件上传功能是常见的需求,比如用户可能需要上传个人照片、文档或者其他类型的文件。在这个"Struts2之struts2文件上传详解案例struts011"中,我们将深入探讨如何实现这一功能。 首先,我们需要了解...

    struts2 文件上传

    Struts2 文件上传是Web开发中的一个重要功能,它允许用户通过网页上传文件到服务器。Struts2 是一个基于MVC(Model-View-Controller)设计模式的Java Web框架,提供了丰富的特性和强大的控制层功能,使得文件上传...

    struts1实现文件上传

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

    struts2+jquery+ajax文件异步上传

    总的来说,"struts2+jquery+ajax文件异步上传"是一个结合了后端处理和前端交互的文件上传解决方案,提供了良好的用户体验和灵活性。通过MyEclipse这样的集成开发环境,开发者可以方便地构建、调试和部署这样的项目。

    简单易懂的struts2文件上传

    在Struts2中,文件上传功能是一个常见的需求,例如用户可能需要上传图片、文档或其他类型的文件。本教程将深入浅出地讲解如何在Struts2中实现文件上传,并提供一个简单的实例来帮助理解。 1. **Struts2文件上传概述...

    struts2文件上传和下载

    2. **Struts2 Action类中的文件处理**: 文件上传后,Struts2会将文件内容存储在一个临时位置。通常,你需要在Action类中创建一个`File`对象和一个`String`类型的属性,如`private File file; private String ...

    struts2文件上传例子.rar

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

    基于Javascript和Struts不定数量文件上传的设计.pdf

    "基于Javascript和Struts不定数量文件上传的设计" 本文主要讨论了基于Javascript和Struts不定数量文件上传的设计思想。该设计解决了传统文件上传方法的不足之处,即无法满足用户的需求,无法上传不定数量的文件,且...

    Struts2文件上传源码

    在Struts2中,文件上传是常见的功能之一,尤其是在处理用户提交表单时,比如上传图片、文档等。本文将详细讲解Struts2文件上传的实现原理以及源码分析。 首先,理解文件上传的基本流程。当用户通过HTML表单选择文件...

Global site tag (gtag.js) - Google Analytics