`

struts 上传任意多个文件

阅读更多

转自:http://1zebra.iteye.com/blog/427260

 

在struts1.x中,若使用FormFile[]数组来做批量上传并不能成功。

下面这种方法只是通过struts1.x中的MultipartRequestHandler来获取<input type="file" />控件来达到批量上传的目的

1.jsp页面为
<html:file property="files(0)" />
        <html:errors property="files" />
        <div id="uploadFile"></div>
        <a href=""> <input type="button" value="上传更多"
          onclick="addItem()" />
        <script>
         i=1;
         function addItem(){
          document.getElementById('uploadFile').innerHTML+='<input type=\"file\" name=\"files('+i+')\"><br/> ';
          i++;
         }
        </script>

2 form表单
//目的是不让struts报错
private List<FormFile> files = new ArrayList<FormFile>();

public List<FormFile> getFiles() {
   return this.files;
}

3.action为
//获取formfile
   ContentPublishForm contentPublishForm = (ContentPublishForm) form;
   MultipartRequestHandler multipartRequestHandler = form
     .getMultipartRequestHandler();
   // 取得所有上传文件的对象集合
   Hashtable elements = multipartRequestHandler.getFileElements();
   // 循环遍历每一个文件
   Collection values = elements.values();
   int k = 0;
   for (java.util.Iterator i = values.iterator(); i.hasNext();) {
    FormFile file = (org.apache.struts.upload.FormFile) i.next();// 取得上传的文件
    if ("" != file.toString()) {
     FileOutputStream fileOutput;
     try {
      String fileUrl = request
        .getRealPath("//Image//"
          + file.getFileName());
      fileOutput = new FileOutputStream(fileUrl);
      fileOutput.write(file.getFileData());
      fileOutput.flush();
      fileOutput.close();
     } catch (FileNotFoundException e) {
      e.printStackTrace();
     } catch (IOException e) {
      e.printStackTrace();
     }
    }
   }
分享到:
评论

相关推荐

    struts实现任意多文件上传实例

    总的来说,"struts实现任意多文件上传实例"是一个实用的示例,可以帮助开发者了解和掌握在Struts中进行多文件上传的完整流程。通过学习这个实例,你可以更深入地理解Struts框架和文件上传的处理方式。

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

    在表单中,可以使用HTML5的`multiple`属性允许用户选择多个文件。在Action中,循环遍历这些文件并进行相应的处理。 提供的压缩文件`struts实现上传下载源码及文档`应该包含了完整的实现示例,包括Action类、...

    struts2 上传多个文件 .doc

    本篇将详细介绍如何在 Struts2 中实现单个文件和多个文件的上传功能。 首先,为了实现文件上传,我们需要在项目中添加两个关键的库:`commons-fileupload-1.1.1.jar` 和 `commons-io-1.1.jar`。这两个库提供了文件...

    struts上传问题研究

    然后,我们可以在Action类中定义一个`List&lt;FileInfo&gt;`类型的成员变量,用来接收上传的多个文件。 当涉及到文件类型和大小的验证时,Struts2提供了`interceptor`拦截器来实现。例如,我们可以自定义一个`...

    struts2多文件上传

    在Struts2中实现多文件上传是一项常见的功能,尤其在处理用户需要一次性提交多个文件的场景下。本篇文章将详细探讨如何在Struts2中实现多文件上传,并介绍相关的知识点。 首先,我们需要了解Struts2的文件上传机制...

    struts 动态多文件上传

    能同时上传单个文件或多个文件并创建文件夹,可以任意增减文件数目,运行结果

    多文件上传swfupload

    5. **文件队列管理**:SwfUpload 支持文件队列,用户可以选择多个文件后一次性上传,也可以按需控制文件的上传顺序和取消上传。 **Java 后端处理** 在Java后端,我们需要处理SwfUpload发送的HTTP请求。由于...

    struts2写的上传下载 支持批量

    2. **批量上传**: 批量上传意味着用户可以一次选择并上传多个文件。这可以通过在表单中使用多个`&lt;input type="file"&gt;`元素来实现,每个元素对应一个待上传的文件。在Action类中,需要对应数量的File字段来接收这些...

    struts2学习教程

    第一个Struts2程序,处理一个form多个submit,struts.xml常用配置解析,使用validate方法验证数据,使用Validation框架验证数据,在Action类中获得HttpServletResponse对象的四种方法,上传任意多个文件,拦截器概述...

    strut2文件上传实例

    总的来说,"strut2文件上传实例"是一个关于如何在Struts2框架下实现文件上传功能的示例,涵盖了配置、表单创建、Action处理、文件保存以及安全性考虑等多个方面。通过这个实例,开发者可以学习到如何在实际项目中...

    K8_Struts2_EXP 20170310

    然而,随着时间的推移,Struts2框架被发现存在多个安全漏洞,这些漏洞可能导致严重的后果,如远程代码执行、数据泄露等。"K8_Struts2_EXP 20170310"是针对这些问题的一款检测工具,主要用于识别和预防Struts2框架的...

    struts2.3.32.zip

    升级到这些版本对于所有使用受影响Struts版本的用户来说至关重要,尤其是那些使用基于Jakarta的多分片文件上传解析器的用户。升级可以防止恶意攻击者利用此漏洞对系统进行攻击。 **应对策略** 1. **立即升级**: ...

    Struts2远程命令执行验证工具

    5. **文件上传测试**:除了命令执行,某些Struts2漏洞也可能允许恶意文件上传,该工具可能包含对这一风险的检测。 6. **教育与预防**:通过使用此工具,管理员不仅可以了解当前系统的安全状况,还能学习如何防止...

    struts2 java struts jsp

    1. 获取所需的jar文件,可以从Apache Struts官方网站下载Struts2的完整包,其中包括核心库、XWork库、OGNL库、FreeMarker库、日志库以及文件上传组件等。 2. 创建Struts2的配置文件,通常是`struts.xml`,该文件需要...

    Struts2.0框架技术详解

    **9.2 上传任意多个文件** 通过在表单中设置`name`属性相同的多个文件上传控件,可以实现多个文件的上传。 **示例代码**: ```java public String execute() { List&lt;File&gt; files = getFiles("file"); List...

    Struts2漏洞检测(带自己编写使用说明一看就上手)

    3. **S2-048**(CVE-2017-5638):这个漏洞是由于解析JSON时的反序列化问题,使得攻击者可以通过上传恶意的JSON文件来执行任意代码。 4. **S2-012**(CVE-2012-6120):该漏洞存在于Struts2的FreeMarker模板引擎中...

    Struts2学习的东西

    例如,`*`可以匹配任意字符,`**`可以匹配多个目录层级。这种特性有助于创建更简洁、可读性强的URL结构。 3. **Struts2应用POJO(Plain Old Java Object)详解**:在Struts2中,动作类可以是普通的Java对象,无需...

    Struts2漏洞检查工具

    这个漏洞影响了Struts2的多个版本,包括2.3.x和2.5.x。 2. **S2-046(CVE-2017-5638)**:又称为“Apache Struts2远程代码执行漏洞”,是由于上传插件中的一个严重错误,使得攻击者可以利用恶意的Multipart请求来...

Global site tag (gtag.js) - Google Analytics