public abstract class ActionEngine extends ActionSupport implements ServletRequestAware
{
private HttpServletRequest httpServletRequest;
public void setServletRequest(HttpServletRequest servletRequest)
{
this.httpServletRequest = servletRequest;
}
protected Map<String, Object> fileMap = new HashMap<String, Object>();
public void preExecute() throws Exception
{
if (httpServletRequest instanceof MultiPartRequestWrapper)
{
MultiPartRequestWrapper requestWrapper = (MultiPartRequestWrapper) httpServletRequest;
if (requestWrapper.hasErrors())
{
Collection<String> errors = requestWrapper.getErrors();
if (errors != null && !errors.isEmpty())
{
Iterator iterator = errors.iterator();
long maxSize = 0;
if (requestWrapper.getAttribute("maxSize") != null)
{
maxSize = Long.parseLong(requestWrapper.getAttribute("maxSize")
.toString());
maxSize = maxSize / 1024 / 1024;
}
while (iterator.hasNext())
{
throw new XXXException;
}
}
return;
}
Enumeration<String> parameterNames = requestWrapper.getFileParameterNames();
while (parameterNames.hasMoreElements())
{
@SuppressWarnings("unused")
String paramterName = parameterNames.nextElement();
File[] files = requestWrapper.getFiles(paramterName);
if (null == files || files.length == 0)
{
continue;
}
else if (files.length == 1)
{
FileBean fileBean = new FileBean();
fileBean.setAbsolutePath(files[0].getAbsolutePath());
fileBean.setFileSize(files[0].length());
fileBean.setFilename(requestWrapper.getFileNames(paramterName)[0]);
this.fileMap.put(paramterName, fileBean);
}
else
{
ArrayList<FileBean> list = new ArrayList();
for (int i = 0; i < files.length; i++)
{
File file = files[i];
FileBean fileBean = new FileBean();
fileBean.setAbsolutePath(file.getAbsolutePath());
fileBean.setFileSize(file.length());
fileBean.setFilename(requestWrapper.getFileNames(paramterName)[i]);
list.add(fileBean);
}
this.fileMap.put(paramterName, list);
}
}
}
}
}
分享到:
相关推荐
文件上传功能允许用户从他们的设备上传文件到服务器。在Struts2中,这通常通过表单实现,表单包含一个`<input type="file">`元素,用户可以选择本地文件。Struts2的Action类会接收这个文件,并使用`Commons ...
Struts2提供了`FileUploadInterceptor`拦截器来处理文件上传请求。在处理文件上传时,开发者需要在Action类中声明一个`List<FileInfo>`类型的字段,用于接收上传的文件信息。`FileInfo`是自定义的类,包含`File`对象...
Struts2是一个流行的Java web开发框架,用于构建企业级应用...无论是使用List集合还是数组,核心原理都是相同的,只是接收上传文件的对象类型不同。了解并掌握这一特性,对于开发支持文件上传功能的web应用至关重要。
2. **上传组件**:Struts2使用Apache Commons FileUpload库来处理文件上传。这个库负责解析请求中的多部分数据,将文件内容分离出来。`commons-fileupload.jar` 是这个库的实现,它包含了处理文件上传的基本类和接口...
这个"Struts2+上传文件源码"是一个演示如何在Struts2框架下实现文件上传的示例代码。 首先,我们来理解上传文件的基本流程。在Struts2中,文件上传是通过`Commons FileUpload`库来处理的,这是一个Apache提供的开源...
在Struts2的配置文件中,我们可以定义这些规则,例如限制上传文件的大小,只接受特定类型的文件(如图片、文档等)。此外,我们还需要关注安全问题,防止恶意文件上传。 文件上传的实现通常包括以下几个步骤: 1. ...
在文件上传场景中,Struts2可以处理上传的文件,将其保存到服务器,并返回相应的响应。 **三、SWFUpload与Struts2整合步骤** 1. **添加依赖**:首先,需要在项目中引入SWFUpload的JavaScript库和Flash对象,以及...
在Struts2中,文件上传功能是一项常用的功能,允许用户通过Web表单上传文件到服务器。本篇将深入探讨Struts2中的文件上传机制、步骤以及常见问题。 首先,我们要理解文件上传的基本原理。在Web应用中,文件上传通常...
同时,我们还需要配置`struts.multipart.saveDir`属性,指定临时文件保存的位置,以及`struts.multipart.maxSize`,限制上传文件的最大大小。 在视图层,通常会有一个HTML表单,使用`enctype="multipart/form-data...
在Struts2中,文件上传是一个常见的需求,可以帮助用户从客户端上传文件到服务器。本文将详细讲解Struts2框架下三种不同的文件上传方式:copy模式、字节流上传和字符流上传。 1. Copy模式文件上传: Copy模式是...
Struts2是一个强大的MVC(模型-视图-控制器)...记得在实际操作时,确保服务器环境已经配置好相应的依赖,并且有足够的磁盘空间以处理上传的文件。同时,为了安全起见,应对上传文件进行权限控制,防止恶意文件的上传。
Struts框架通过解析这个格式化的请求,可以获取到上传文件的信息。 1. **配置Struts2 Action**:在Struts2中,我们需要创建一个Action类来处理文件上传请求。这个类通常需要实现`ServletRequestAware`接口,以便...
通常,你需要设置`<result>`类型为`stream`,以便处理上传的文件。 2. **Action类**:创建一个继承自`ActionSupport`的类,并实现文件上传的方法。这个方法通常会接收一个`File`或`CommonsFileUpload`的`FileItem`...
总结来说,实现Struts2批量上传文件涉及到的技术点包括Struts2拦截器、Apache Commons FileUpload、Action类的文件处理以及前端的文件验证。通过这些技术,我们可以创建一个稳定且功能完备的文件上传系统,既能处理...
// 处理上传文件的逻辑 } } ``` 3. **表单提交**: 在前端HTML页面,创建一个`enctype="multipart/form-data"`的表单,这样浏览器会知道需要以多部分形式发送数据: ```html ``` 4. **处理上传**: ...
在这个“struts2上传文件源代码”中,我们将深入探讨Struts2如何实现文件上传功能,以及涉及到的相关知识点。 首先,文件上传是Web应用中常见的功能,它允许用户从本地计算机选择文件并将其发送到服务器。在Struts2...
默认情况下,这个拦截器可能会限制上传文件的类型为`.txt`,并且大小不超过10MB。这种限制是为了防止恶意用户上传大文件或者非文本文件,从而可能对服务器造成压力或引入安全风险。 配置文件`struts.xml`中关于文件...
用户上传文件后,表单提交至`/fileManage/upload`这个URL地址,并由Struts2框架调用`UploadAction`的`execute()`方法进行处理。 ### Struts2文件下载知识点 虽然给定文件的内容中没有直接提及文件下载的实现方法,...
在Struts2中,文件上传功能是常见的需求,比如用户可能需要上传个人照片、文档或者其他类型的文件。在这个"Struts2之struts2文件上传详解案例struts011"中,我们将深入探讨如何实现这一功能。 首先,我们需要了解...
Struts 2 的 fileUpload 拦截器则负责将这些文件绑定到 Action 对象的属性上,使得开发者可以像操作本地文件一样对上传文件进行处理。 在 Struts 2 中实现文件上传,首先需要在 JSP 页面创建一个支持多部分数据的...