`
aben328
  • 浏览: 1460716 次
  • 性别: Icon_minigender_1
  • 来自: 广东
社区版块
存档分类

Struts2多文件上传

阅读更多

Struts2多文件上传

Struts2多文件上传:
 在Action中配置三个属性:
 private List<File> file;
 
 private List<String> fileFileName;
 
 private List<String> fileContentType;
 /**
  * 完成多文件上传能功的Action
  *
  * @author 张明学
  *
  */
 public class UploadsAction extends ActionSupport {
  private String username;
 
  private String password;
 
  private List<File> file;
 
  private List<String> fileFileName;
 
  private List<String> fileContentType;
 
  @Override
  public String execute() throws Exception {
   String root = ServletActionContext.getRequest().getRealPath("/upload");
 
   if (file != null) {
    for (int i = 0; i < file.size(); i++) {
     InputStream is = new FileInputStream(file.get(i));
 
     File destFile = new File(root, this.fileFileName.get(i));
 
     OutputStream os = new FileOutputStream(destFile);
 
     byte[] buffer = new byte[400];
 
     int length = 0;
 
     while ((length = is.read(buffer)) > 0) {
      os.write(buffer, 0, length);
     }
     os.close();
     is.close();
 
    }
   }
   return SUCCESS;
  }
 
  public List<File> getFile() {
   return file;
  }
 
  public void setFile(List<File> file) {
   this.file = file;
  }
 
  public List<String> getFileContentType() {
   return fileContentType;
  }
 
  public void setFileContentType(List<String> fileContentType) {
   this.fileContentType = fileContentType;
  }
 
  public List<String> getFileFileName() {
   return fileFileName;
  }
 
  public void setFileFileName(List<String> fileFileName) {
   this.fileFileName = fileFileName;
  }
 
  public String getPassword() {
   return password;
  }
 
  public void setPassword(String password) {
   this.password = password;
  }
 
  public String getUsername() {
   return username;
  }
 
  public void setUsername(String username) {
   this.username = username;
  }
 
 }
 在页面中:
 一, 文件上传的个数是静态的:
  <s:form method="post" action="uploads" enctype="multipart/form-data">
     <s:textfield name="username" label="username"></s:textfield>    
     <s:password name="password" label="password"></s:password>
     <s:file name="file" label="file1"></s:file>
     <s:file name="file" label="file2"></s:file>
     <s:file name="file" label="file3"></s:file>
     <s:submit></s:submit>
     <s:reset></s:reset>
    </s:form>
 二,文件上传的个数是动态的:
  //动态添加文件上传个数的JS
  <script language="javascript">
     function addMore()
     {
      var td=document.getElementById("more");
      var br=document.createElement("br");
      var input=document.createElement("input");
      var button=document.createElement("input");
      
      input.type="file";
      input.name="file";
      
      button.type="button"
      button.value="删除";
      button.onclick = function()
      {
       td.removeChild(br);
       td.removeChild(input);
       td.removeChild(button);
      }
      
      td.appendChild(br);
      td.appendChild(input);
      td.appendChild(button);
      
     }
    </script>
 
  <s:form action="uploads" method="post" enctype="multipart/form-data" theme="simple">
   <table border="1" align="center" width="60%">
    <tr>
     <td>用户名:</td>
     <td>
      <s:textfield name="username"></s:textfield>
     </td>
    </tr>
    <tr>
     <td>密  码:</td>
     <td>
      <s:password name="password"></s:password>
     </td>
    </tr>
    <tr>
     <td>文件:</td>
     <td id="more">
      <s:file name="file"></s:file><input type="button" value="更多" onclick="addMore()">
     </td>
    </tr>
    <tr>
     <td>
      <s:submit></s:submit>
     </td>
     <td>
      <s:reset></s:reset>
     </td>
    </tr>
   </table>
  </s:form>   

分享到:
评论

相关推荐

    struts2多文件上传

    Struts2多文件上传是Java Web开发中常见的一项功能,用于允许用户一次上传多个文件。在Struts2框架中,实现这一功能涉及到一系列的技术和步骤。以下是对这一知识点的详细说明: 1. **Struts2框架**:Struts2是一个...

    struts2多文件上传显示进度

    Struts2是一个非常流行的Java Web框架,...总的来说,Struts2多文件上传并显示进度的实现需要结合前端和后端的技术,通过AJAX和XMLHttpRequest的`onprogress`事件来动态更新进度条,同时确保后端处理的高效和安全性。

    Struts2多个文件上传

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

    Struts2多文件上传下载实例

    在实际项目中,文件上传和下载功能是必不可少的,本实例将详细讲解如何在Struts2框架下实现单个文件及多个文件的上传与下载。 首先,我们需要在Struts2的配置文件(struts.xml)中添加相关的Action配置,以便处理文件...

    struts2多文件上传和下载

    在Struts2中,文件上传和下载是常见的功能,对于用户交互和数据交换至关重要。这篇内容将深入讲解如何在Struts2中实现多文件的上传和下载。 1. **文件上传** 文件上传在Web应用中常常用于让用户提交各种类型的文件...

    struts2实现多文件上传下载

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

    Ext+Struts2多文件上传

    通过以上步骤,我们可以利用ExtJS的用户界面和Struts2的后台处理能力,实现一个完整的多文件上传功能。这个功能不仅提高了用户体验,还简化了开发流程。在实际项目中,还可以进一步优化,例如添加进度条显示、预览...

    struts2实现多文件上传功能

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

    AjaxFileUpload Struts2 多文件上传

    本篇文章将深入讲解如何利用AjaxFileUpload与Struts2实现多文件上传,并结合jQuery进行前端交互。 首先,我们需要在项目中引入必要的库。Struts2提供了struts2-jquery-plugin,这是一个基于jQuery的插件,包含了...

Global site tag (gtag.js) - Google Analytics