`
sw1982
  • 浏览: 511465 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

struts2多文件上传。。

 
阅读更多

一。默认的做法

struts2对文件upload做了默认封装,用起来比较爽。

我在一个项目中用下面这几行代码就实现了多文件的上传:

<form action="xx.action" method="post" enctype="multipart/form-data">
  第一个文件:<input type="file" name="upload" /><br>
  第二个文件:<input type="file" name="upload" /><br>
  第三个文件:<input type="file" name="upload" /><br>
<input value="上传" type="submit" />
</form>

 

Action中只需要定义下面这几行就能获取到上传的文件列表。

public class xxAction extends ActionSupport
{
    private File[] upload;
    private String[] uploadContentType;
    private String[] uploadFileName;

   //getter&setter
}

 

 

下面判断一下upload,做了如下实现。。。就犯了一个隐晦的bug:

if (upload != null) {
     if (upload[1] != null) { //户主照片
              doA
     }
     if (upload.length>2 && upload[2] != null) { //新房照片
		doB
     }
     if (upload.length>3 && upload[3] != null) { //新房照片
		doC
     }

}

 用户按序传完整3张图片还好,如果只传第2个文件呢??那么取到的只有upload[1],会执行doA而不是理论上的doB.

 

二。改良的逻辑

其实对多文件的上传,考虑下面这种实现方式可能会更好: <s:file>标签

 

添加户主图片:<s:file name="upload1" />
添加原房图片:<s:file name="upload2" />
添加新房图片:<s:file name="upload3" />

 

在Action里面定义:

public class xxxAction extends ActionSupport {
		// file upload
		private File upload1; // 客户端文件域
		private String upload1ContentType; // 上传的文件类型
		private String upload1FileName; // 上传的文件名
		
		private File upload2; // 客户端文件域
		private String upload2ContentType; // 上传的文件类型
		private String upload2FileName; // 上传的文件名
		
		private File upload3; // 客户端文件域
		private String upload3ContentType; // 上传的文件类型
		private String upload3FileName; // 上传的文件名

  //getter &&setter
}

 将多文件分开处理,struts2根据<s:file>标签一样可以自动封装到file信息

分享到:
评论

相关推荐

    Struts2多文件上传

    总结来说,Struts2多文件上传涉及到Struts2配置、Action编写、HTML表单设计以及结果处理等多个环节。通过以上步骤,你可以在Struts2应用中实现稳定可靠的多文件上传功能。不过,实际项目中还需要考虑错误处理、安全...

    struts2多文件上传

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

    Struts2多个文件上传

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

    struts2多文件上传显示进度

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

    Struts2多文件上传下载实例

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

    struts2实现多文件上传下载

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

    struts2多文件上传和下载

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

    struts2实现多文件上传功能

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

    struts2实现文件上传下载

    首先,我们需要了解Struts2中的文件上传机制。Struts2提供了`FileUploadInterceptor`拦截器来处理文件上传请求。在处理文件上传时,开发者需要在Action类中声明一个`List&lt;FileInfo&gt;`类型的字段,用于接收上传的文件...

    Ext+Struts2多文件上传

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

Global site tag (gtag.js) - Google Analytics