- 浏览: 286821 次
- 性别:
- 来自: 深圳
文章分类
最新评论
-
cheetah_ysc:
不错不错,我喜欢!
Java固定时间间隔执行 -
voyage_mh:
阿选百度竟然一下可以吧你百度出来
使用DWR注解Annotation
客户端端jsp请求
<%@ page contentType="text/html; charset=GBK" language="java"
errorPage=""%>
<%@taglib prefix="s" uri="/struts-tags"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>使用List上传多个文件</title>
<meta name="website" content="http://www.crazyit.org" />
</head>
<body>
<span style="color: red"><s:fielderror />
</span>
<form action="upload.action" method="post"
enctype="multipart/form-data">
文件标题:
<input type="text" name="title" />
<br />
选择第一个文件:
<input type="file" name="upload" />
<br />
选择第二个文件:
<input type="file" name="upload" />
<br />
选择第三个文件:
<input type="file" name="upload" />
<br />
<input value="上传" type="submit" />
</form>
</body>
</html>
Action处理
package lee;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.util.List;
import javax.servlet.ServletContext;
import org.apache.struts2.ServletActionContext;
import org.apache.struts2.util.ServletContextAware;
import com.opensymphony.xwork2.ActionSupport;
@SuppressWarnings("serial")
public class UploadAction extends ActionSupport implements
ServletContextAware {
private String title;
//使用File数组封装多个文件域对应的文件内容
private List<File> upload;
//使用字符串数组封装多个文件域对应的文件类型
private List<String> uploadContentType;
//使用字符串数组封装多个文件域对应的文件名字
private List<String> uploadFileName;
private ServletContext content;
@Override
public String execute() throws Exception
{
//取得需要上传的文件数组
List<File> files = getUpload();
//遍历每个需要上传的文件
for (int i = 0 ; i < files.size() ; i++)
{
//以服务器的文件保存地址和原文件名建立上传文件输出流
FileOutputStream fos = new FileOutputStream(content.getRealPath("/upload")
+ "\\" + getUploadFileName().get(i));
//以每个需要上传的文件建立文件输入流
FileInputStream fis = new FileInputStream(files.get(i));
//将每个需要上传的文件写到服务器对应的文件中
byte[] buffer = new byte[1024];
int len = 0;
while ((len = fis.read(buffer)) > 0)
{
fos.write(buffer , 0 , len);
}
fos.close();
}
return SUCCESS;
}
//title属性的setter和getter方法
public void setTitle(String title)
{
this.title = title;
}
public String getTitle()
{
return this.title;
}
//upload属性的setter和getter方法
public void setUpload(List<File> upload)
{
this.upload = upload;
}
public List<File> getUpload()
{
return this.upload;
}
//uploadContentType属性的setter和getter方法
public void setUploadContentType(List<String> uploadContentType)
{
this.uploadContentType = uploadContentType;
}
public List<String> getUploadContentType()
{
return this.uploadContentType;
}
//uploadFileName属性的setter和getter方法
public void setUploadFileName(List<String> uploadFileName)
{
this.uploadFileName = uploadFileName;
}
public List<String> getUploadFileName()
{
return this.uploadFileName;
}
public ServletContext getContent() {
return content;
}
public void setContent(ServletContext content) {
this.content = content;
}
public void setServletContext(ServletContext content) {
this.content = content;
}
}
struts.xml实现过滤,使用拦截器
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE struts PUBLIC
"-//Apache Software Foundation//DTD Struts Configuration 2.1//EN"
"http://struts.apache.org/dtds/struts-2.1.dtd">
<struts>
<!-- 指定国际化资源文件的baseName为globalMessages -->
<constant name="struts.custom.i18n.resources"
value="globalMessages"/>
<!-- 设置该应用使用的解码集 -->
<constant name="struts.i18n.encoding" value="UTF-8"/>
<package name="lee" extends="struts-default">
<!-- 配置处理文件上传的Action -->
<action name="upload" class="lee.UploadAction">
<!-- 配置fileUpload的拦截器 -->
<interceptor-ref name="fileUpload">
<!-- 配置允许上传的文件类型 -->
<param name="allowedTypes">image/bmp,image/png,
image/gif,image/jpeg</param>
<!-- 配置允许上传的文件大小 -->
<param name="maximumSize">2000000</param>
</interceptor-ref>
<!-- 配置系统默认的拦截器 -->
<interceptor-ref name="defaultStack"/>
<!-- 动态设置Action的属性值
<param name="savePath">/upload</param>-->
<!-- 配置input逻辑视图对应的视图页面 -->
<result name="input">/upload.jsp</result>
<!-- 配置Struts 2默认的视图页面 -->
<result>/succ.jsp</result>
</action>
</package>
</struts>
写messageResouce.properties文件
发表评论
-
Struts2类型转换
2010-12-17 14:46 13541.自定义类型转换器 第一步:编写自定义的转换器类 ... -
Struts2的基本原理
2010-12-17 14:35 1212Struts2 的基本工作流程 Struts2框架是由 ... -
Strut2使用拦截器过滤权限问题
2010-10-18 19:27 1295JSP请求(login.jsp) <%@ page ... -
Strrts2基于Annotation的输入验证
2010-10-18 17:35 1162客户端jsp请求Action代码 <%@ page ... -
Struts2异常处理
2010-10-18 12:28 1320异常映射分为两种:局部异常映射,全局异常映射。局部异常映射会 ... -
Struts2向结果传参数
2010-10-15 11:43 1909JSP请求页面(传参) &l ... -
Struts2动态指定结果
2010-10-14 22:32 1255Jsp反问页面 <%@ page language= ... -
Strut2中Action的Result类型
2010-10-14 22:16 1596type="dispatcher" 只是跳 ... -
Web中request,session,application的获取(1)
2010-10-14 17:51 1109jsp请求 <%@ page language=&q ... -
文件下载(struts2 Action)
2010-10-10 11:34 1718客户端jsp请求Actin <%@ page lan ... -
文件下载(超链接)
2010-10-10 11:09 1086文件下载有时候很简单,直接通过一个超链接就可以实现文件下载(注 ... -
Struts2多文件上传
2010-10-10 00:03 895可以是数组也可以是list和map jsp请求代码 A ... -
Struts2上传文件手动实现文件过滤
2010-10-09 17:10 2892在实现了上传的功能的情况下,再加一点点代码就可以实现手动文件 ... -
Struts2上传文件(2)
2010-10-09 14:08 838html请求 Action处理(和前面那个上传基本一样 ... -
Struts2上传文件
2010-10-09 13:31 1073struts上传需要的jar包 ... -
Action基本的验证(校验规则文件)
2010-10-06 10:47 979客户端jsp请求 <%@ page language= ... -
Action基本的验证
2010-10-06 10:12 800JSP请求 <%@ page language=&qu ... -
使用action属性接收参数,中文问题
2010-10-05 16:08 1135客户端JSP请求(这里可 ... -
使用模型驱动来接收参数
2010-10-05 16:02 1753一个简单的javaBean来封装将要请求的参数可以是VO,属性 ... -
使用域模型接收参数并封装
2010-10-05 15:57 946JSP请求代码,传了参数 <%@ page langu ...
相关推荐
首先,我们需要在`struts.xml`配置文件中启用文件上传功能,并指定允许的最大文件大小: ```xml <constant name="struts.multipart.maxSize" value="10485760"></constant> <!-- 单位为字节,10MB --> ``` 接着,...
通过以上步骤,你就可以在Struts2中实现文件上传并使用过滤器限制文件类型了。注意,这只是一个基础示例,实际应用中可能需要考虑更多细节,如多文件上传、错误处理、文件重命名、存储路径管理等。在进行文件上传时...
在Struts2框架中,文件上传是一个常见的功能,它允许用户通过Web应用程序上传文件到服务器。`codeFilter`在此上下文中通常是指一个自定义过滤器,用于在文件上传过程中进行额外的安全检查或处理。这个过滤器可以防止...
创建自定义过滤器需实现`Filter`接口,并在`web.xml`配置文件中声明。在本实例中,可能包含一个用于处理特定请求或者对用户身份验证的过滤器。 接着,我们来看文件上传下载功能。在Struts2中,文件上传主要依赖于...
3. **Action配置**:在Struts2的配置文件(struts.xml)中,定义一个处理文件上传的Action,指定`params`拦截器,确保表单数据能被正确解析。 4. **处理文件**:在Action类中,使用`CommonsFileUpload`库(Apache ...
总的来说,`commons-fileupload-1.2.1.jar` 和 `commons-io-1.4.jar`是实现Struts2文件上传功能的基础,它们提供了解析、存储和操作上传文件的核心功能。理解并熟练运用这两个库,可以有效地进行文件上传操作,并...
通过以上步骤,你可以在Struts2中实现一个简单的文件上传功能。在实际开发中,你可能需要根据项目需求进行相应的扩展和优化,例如使用拦截器来处理全局的上传策略,或者集成第三方库进行更复杂的文件管理。
Struts2是一个强大的MVC...通过以上步骤,我们可以利用Struts2和Uploadify实现多文件上传功能,为用户提供友好的上传体验,同时确保服务器端能正确处理和存储上传的文件。在实际项目中,应根据具体需求进行定制和优化。
`CommonsFileUpload`通过将HTTP请求中的数据部分保存到服务器端的临时文件夹中,再由Struts 2框架的`fileUpload`拦截器处理这些临时文件,将其绑定到Action类的相应属性上,从而实现了对上传文件的处理。 #### 具体...
在Struts2中,文件上传功能是一项常用的功能,允许用户通过Web表单上传文件到服务器。这篇博客文章(遗憾的是,由于没有直接提供具体内容,我无法提供更详细的博客内容摘要),可能详细介绍了如何在Struts2框架中...
3. 配置文件:如struts.xml,配置Struts2的动作映射和结果类型,确保上传请求能被正确路由到对应的Action。 4. Servlet或Filter:可能用于处理文件上传的细节,如设置最大文件大小限制、处理多部分请求等。 5. 下载...
配置文件中可以指定上传文件的存储路径,例如在struts-config.xml中定义一个action-mapping,设置其`parameter`属性为文件上传的目录。为了更好地管理上传的文件,可以考虑创建多级目录结构,如按照日期或用户ID来...
- 首先,要在`struts.xml`配置文件中启用文件上传支持,通过`<constant>`标签设置`struts.multipart.parser`为`jakarta`,并指定上传文件大小的限制。 - 创建一个Action类,该类通常会有一个字段类型为`File`或`...
1. **配置Struts2核心配置文件**: 在`struts.xml`中添加上传配置,声明一个`action`用于处理文件上传请求。例如: ```xml <result name="success">/uploadSuccess.jsp ``` 其中`fileUploadStack`是...
Struts2允许在配置中设置最大上传文件的大小。 8. **文件类型检查**:应用可能需要限制可上传的文件类型。这可以通过在Action类中实现校验逻辑,或者使用过滤器进行。 9. **文件处理**:在Action类的业务方法中,...
**4.3 使用Struts2实现文件下载** Struts2提供了内置的支持来实现文件下载,通过配置`<result>`元素的类型为`stream`来指定下载行为。 ```xml <param name="contentType">application/octet-stream ...
Struts2提供了一些内置的拦截器,如SizeValidatorInterceptor和FileUploadInterceptor,可以用来限制上传文件的大小和类型。 7. **进度条显示**:为了让用户体验更好,可以使用JavaScript或jQuery库(如jQuery-File...
在Struts2中可以通过配置文件上传拦截器(`fileUpload`)来实现对上传文件的大小限制以及文件类型的过滤。在`struts.xml`配置文件中添加如下配置: ```xml <param name="maximumSize">2MB</param> <!-- 最大文件...
在本案例中,我们关注的是如何使用Struts2实现文件上传的功能,这在许多Web应用中都是一个常见的需求,比如用户上传头像、提交文档等。 首先,理解上传功能的基本原理。在HTTP协议中,文件上传通常通过表单的POST...
在Struts2中,文件上传是一个常见的功能,它允许用户通过表单上传文件到服务器。为了实现这一功能,开发者通常需要依赖一些特定的库,如`commons-fileupload`和`commons-io`。下面我们将详细探讨这两个关键的Java库...