- 浏览: 119226 次
- 性别:
- 来自: 福建
文章分类
最新评论
-
wenbing2610:
其实用Struts实现图片上传比用Servlet实现容易多了。 ...
Struts2文件上传深入FileUploadInterceptor -
i_feng:
public class uploadImageAction ...
Struts2文件上传深入FileUploadInterceptor -
wenbing2610:
...
ognl.MethodFailedException
在Struts2中,上传文件时,只要使用java.io.File类来描述上传文件即可,比直接使用Commons-FileUpload组件要简单的多。
上传单个文件:
如果上传的是单个文件,则在Action类中定义一个File类型的变量。该变量的名字与JSP页面上的<input />标签的name属性相对应,只有这样Struts2才能使客户端上传的文件自动与Action类中的相应的属性进行关联处理。
上传多个文件:
如果上传的是多个文件,这时在JSP页面中的所有的<input type="file" name="upload" />标签的name属性值都必须相同,这时Action中相对应的属性就要使用List或File[]用来表示多个文件的信息。
保存文件相关属性的变量设置如下:
private List<File> upload; //保存上传的文件 private List<String> uploadContentType; //保存上传的文件类型 private List<String> uploadFileName; //保存上传的文件名
以下是一个使用Struts 2上传多个文件的例子,把上传的文件重新用生成的随机数命名:
Struts2上传文件相关代码
public class UploadFilesAction extends ActionSupport { private List upload; private List uploadContentType; private List uploadFileName; private String uploadPath; private String result; private boolean success; private String msg; public boolean isSuccess() { return success; } public String getMsg() { return msg; } public String getResult() { return result; } public void setUpload(List upload) { this.upload = upload; } public void setUploadContentType(List uploadContentType) { this.uploadContentType = uploadContentType; } public void setUploadFileName(List uploadFileName) { this.uploadFileName = uploadFileName; } public void setUploadPath(String uploadPath) { this.uploadPath = uploadPath; } public String execute() throws Exception { for (int i = 0; i < uploadFileName.size(); i++) { Random random = new Random(); String filename = uploadFileName.get(i); //把上传的文件用生成的随机数重新命名 //并判断生成的文件名是否已经存在 //如果存在,则继续生成随机数命名,直到找打还没使用的随机数为止 filename = uploadPath + random.nextLong() + filename.substring(filename.lastIndexOf(".")); while (new File(filename).exists()) { filename = uploadPath + random.nextLong() + filename.substring(filename.lastIndexOf(".")); } FileOutputStream fos = new FileOutputStream(filename); InputStream is = new FileInputStream(upload.get(i)); byte[] buffer = new byte[8192]; int count = 0; while ((count = is.read(buffer)) > 0) { fos.write(buffer, 0, count); } fos.close(); is.close(); } success=true; msg = "文件上传成功!"; return "result"; } }
在struts.xml文件中可做如下配置:
<package name="struts2" namespace="/" extends="struts-default"> <action name="uploadFiles" class="uploadtest.actions.UploadFilesAction"> <result name="result">/WEB-INF/result.jsp</result> <param name="uploadPath">D:\UploadFiles\</param> </action> </package>
发表评论
-
CSS样式表的overflow属性
2015-01-02 19:22 28一、滚动条样式overflow ... -
jrebel运用
2014-07-13 22:00 1196JRebel热部署 ... -
JPA执行原生SQL截断Char类型问题
2014-05-24 21:39 1191在JPA的API中执行原生 ... -
JPA基本数据类型映射
2014-05-24 21:06 3912/** ... -
spring定时器配置
2014-03-18 21:36 699创建测试类: ... -
The Struts dispatcher cannot be found
2013-11-03 18:48 660运行环境:struts2环境中访 ... -
JasperException
2013-09-15 20:41 1024JasperException异常: ... -
equal symbol expected
2013-09-15 20:08 1207equal symbol ... -
Hibernate主键生成器
2013-09-12 21:11 795... -
Criterion和Criteria
2013-09-08 16:00 1963Hibernate Criter ... -
getHibernateTemplate用法
2013-09-08 15:02 590HibernateTemplate提供的方法 ... -
JS中页面跳转
2013-09-08 14:01 659<html><head><t ... -
GridPanel详解
2013-03-10 10:45 10451、Ext.grid.GridPanel ... -
tomcat内存溢出
2013-03-04 20:26 729在使用Java程序从数据库中查询大量的数据或 ... -
History Object
2013-01-07 21:06 761history 对象是window 对象的另一个子 ... -
Write to programmer
2012-12-29 20:16 863很多的java初级程序员对自己没有一个明确的方 ... -
EL语言
2012-09-27 22:08 898EL的前世今生: ... -
JSTL标签的使用
2012-09-27 22:00 826JSP 标准标记库( Standard Tag Library ... -
使用IBATIS防止sql注入
2012-08-26 21:17 1627对于ibaits参数引用可以使用#和$两 ... -
IBATIS动态SQL标签用法
2012-08-26 21:04 12701、动态SQL片段通过SQL片 ...
相关推荐
在Struts2中,文件上传功能是一个常用特性,尤其在处理用户提交的多个文件时。本文将详细讲解如何使用Struts2进行多个文件的上传,重点是使用List集合进行上传。 首先,要实现Struts2的文件上传,必须引入必要的...
下面将详细阐述如何使用Struts2来实现多个文件的上传。 首先,理解文件上传的基本原理。在HTTP协议中,文件上传通常通过multipart/form-data编码类型来实现。这种编码方式将表单数据分割成多个部分,每部分包含一个...
1.能够对多个文件进行上传(可以选择上传文件个数,也即上传文件个数不定) 2.能够对上传路径进行配置文件指定(upload.properties),使用了一些类似单例模式的静态代码块 3.Struts2进行下载处理,能对上传的所有...
本项目主要展示了如何在Struts2框架下实现单个文件和多个文件的上传及下载,并且运用了多个拦截器来增强功能和安全性。 首先,让我们详细了解一下文件上传的过程。在Struts2中,文件上传主要依赖于`struts2-...
Struts2是一个强大的MVC(模型-视图-控制器)框架,广泛应用于Java ...以上就是使用Struts2框架实现文件上传下载的基本步骤和关键知识点。在实际开发中,可以根据项目需求进行调整和优化,确保功能的稳定性和安全性。
SWFUpload 是一款开源的Flash上传组件,...通过上述步骤和注意事项,你可以利用SWFUpload和Struts2构建一个功能强大且安全的多文件上传功能。在实际项目中,根据需求进行适当的定制和优化,以满足用户需求和系统安全。
通过组合使用Struts2的配置、Action类和HTML表单,我们可以轻松地处理多个文件的上传操作。这个过程中的关键知识点包括:Struts2拦截器、文件上传配置、Action类设计、HTML表单的构建以及服务器端的文件处理逻辑。
Struts2是一个强大的MVC框架,广泛应用于Java Web开发中,尤其在处理用户表单提交和文件上传等交互场景中表现出色。在这个“Struts2实现文件上传”的主题中,我们将深入探讨如何利用Struts2框架来实现在Web应用中的...
本项目实现了使用Struts2进行文件批量上传的功能,这涉及到几个关键的技术点,包括文件上传组件的选择、前端表单设计、后端处理逻辑以及存储策略。 1. **文件上传组件**:在Struts2中,我们通常使用`Commons ...
在Struts2中,实现多文件上传功能是常见的需求,尤其在处理用户需要上传多个文件的场景下,如上传图片、文档等。本篇文章将详细介绍如何使用Struts2来实现这一功能。 首先,我们需要理解Struts2的上传机制。在...
### Struts2实现文件上传(单个+多个文件上传) #### 一、单个文件上传 在Struts2框架中实现文件上传是一项常见的需求。本文将详细介绍如何在Struts2中实现单个文件的上传。 ##### JSP 页面设计 首先,我们需要在...
在 Struts 2 中实现文件上传,首先需要在 JSP 页面创建一个支持多部分数据的表单。例如,在 `FileUpload.jsp` 文件中,表单的 `method` 应设置为 `POST`,`enctype` 应设置为 `multipart/form-data`。此外,使用 `...
总之,这个实例提供了关于Struts1中文件上传和复杂表单数据处理的实战经验,对于学习Java Web开发和Struts1框架的开发者来说,这是一个非常有价值的参考。通过实际操作和调试,可以加深对Struts1处理文件上传和复杂...
这个Action类需要继承`org.apache.struts2.dispatcher.multipart.MultiPartRequest`,以便处理多个文件。同时,定义相应的私有属性,这些属性将用于接收上传的文件,并使用`@RequestParam`注解进行注解。 2. **...
总结起来,使用Struts实现文件上传下载涉及前端表单设计、后端处理逻辑、文件存储策略以及安全控制等多个方面。在实践中,我们还需要考虑到性能优化和用户体验提升,例如使用异步上传、进度条展示等技术。
1. **文件上传**: 在Struts2中,文件上传主要依赖于`Commons FileUpload`库,它是一个Apache提供的组件,专门处理HTTP请求中的多部分数据,包括文件。首先,需要在Struts2配置文件中添加相关的拦截器,如`params`和`...
Struts1和Struts2是两个非常著名的Java Web框架,它们都提供了处理文件上传和下载的功能,但实现方式有所不同。本文将深入探讨这两个框架在文件操作方面的具体实现。 首先,让我们了解一下Struts1中的文件上传功能...
在本项目中,"struts2多文件的上传"实现了用户一次性上传多个文件的能力。 要理解这个功能,首先我们需要了解Struts2中的Action类和Interceptor(拦截器)。Action类是处理用户请求的核心,而Interceptor则用于处理...
这个压缩包包含了实现Struts2文件上传所需的全部jar包,这些库文件对于理解和实现文件上传功能至关重要。 首先,我们要了解Struts2文件上传的基本流程。当用户通过表单提交包含文件输入字段的请求时,Struts2框架会...