- 浏览: 112832 次
- 性别:
- 来自: 福建
文章分类
最新评论
-
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 1137JRebel热部署 ... -
JPA执行原生SQL截断Char类型问题
2014-05-24 21:39 1132在JPA的API中执行原生 ... -
JPA基本数据类型映射
2014-05-24 21:06 3832/** ... -
spring定时器配置
2014-03-18 21:36 650创建测试类: ... -
The Struts dispatcher cannot be found
2013-11-03 18:48 608运行环境:struts2环境中访 ... -
JasperException
2013-09-15 20:41 977JasperException异常: ... -
equal symbol expected
2013-09-15 20:08 1135equal symbol ... -
Hibernate主键生成器
2013-09-12 21:11 752... -
Criterion和Criteria
2013-09-08 16:00 1842Hibernate Criter ... -
getHibernateTemplate用法
2013-09-08 15:02 529HibernateTemplate提供的方法 ... -
JS中页面跳转
2013-09-08 14:01 614<html><head><t ... -
GridPanel详解
2013-03-10 10:45 9791、Ext.grid.GridPanel ... -
tomcat内存溢出
2013-03-04 20:26 684在使用Java程序从数据库中查询大量的数据或 ... -
History Object
2013-01-07 21:06 702history 对象是window 对象的另一个子 ... -
Write to programmer
2012-12-29 20:16 801很多的java初级程序员对自己没有一个明确的方 ... -
EL语言
2012-09-27 22:08 839EL的前世今生: ... -
JSTL标签的使用
2012-09-27 22:00 747JSP 标准标记库( Standard Tag Library ... -
使用IBATIS防止sql注入
2012-08-26 21:17 1529对于ibaits参数引用可以使用#和$两 ... -
IBATIS动态SQL标签用法
2012-08-26 21:04 11381、动态SQL片段通过SQL片 ...
相关推荐
struts2实现的多个文件上传struts2实现的多个文件上传struts2实现的多个文件上传struts2实现的多个文件上传
Struts2多个文件上传 多个文件上传分为List集合和数组,下面我们着重介绍一下list集合的上传。都大同小异。
1.能够对多个文件进行上传(可以选择上传文件个数,也即上传文件个数不定) 2.能够对上传路径进行配置文件指定(upload.properties),使用了一些类似单例模式的静态代码块 3.Struts2进行下载处理,能对上传的所有...
Struts2实现单个文件 多个文件 上传与下载 多个拦截器 直接导入MyEclipse包中即可使用。
一个swfupload+struts2实现多文件上传的案例。
struts2实现文件上传(单个+多个文件上传
struts2 实现多文件上传功能,是一个很好的学习参考资料
Struts2 文件上传下载 多文件 单文件 实例;支持单个或多个文件的上传下载,并且自定义上传文件的大小和类型!!!
实现struts同时上传多个文件!
struts1.2开发,可实习自定义,任意多个文件上传
fileID:要取消的列队文件id 不传递参数时 表示取消列队中的第一个文件上传 传递星号 表示取消列队中的所有文件上传 suppressEvent:设置为true将禁止onUploadCancel事件 取值:String "true"|"事件...
struts1单个上传和多个上传,一个工程,两张上传方式
struts1上传多个文件 jquery multi什么的组件
这是根据uploadify3 2结合struts2搭建的文件上传环境 可以直接导入eclipse运行 每步实现基本都加了注释 以下是我碰到的问题: 1 判断session是否失效 本实例没测试这个问题 但在工作项目中碰到了 但原因在这里...
这是一个struts2实现的文件上传和下载例子,支持多文件上传,并且显示单文件上传的进度条。
struts2实现文件上传,解压后直接导入eclipse即可运行。
Struts2,实现单个文件,多个文件,上传与下载,多个拦截器
用struts上传多个文件的方法,建立上传用的JSP文件配置struts-config.xml文件
MultiFileUpload Struts2多文件 Struts2多文件上传 Struts2上传 Struts2文件上传,随手写的一个Demo实例
struts2 文件上传,也可以多文件上传 里面分开写了两个类,单文件上传类和多文件上传类 适合初学者学习