因公司开发项目要做Struts2上传文件,前台是通过flex实现所以再现有代码基础上又深入改进了一下,先转一下别人的代码,我们的回头二次改造好后在放上来。
public void preExecute()
{
if (httpServletRequest instanceof MultiPartRequestWrapper)
{
MultiPartRequestWrapper requestWrapper = (MultiPartRequestWrapper) httpServletRequest;
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);
}
}
}
}
转自
http://sdh88hf.iteye.com/?show_full=true
分享到:
相关推荐
在Struts2中,文件上传功能是常见的需求,比如用户可能需要上传图片、文档等。下面将详细介绍Struts2实现文件上传的相关知识点。 1. **Struts2核心组件** - `Action`:业务逻辑的载体,负责处理用户请求。 - `...
以下是关于这两个库以及如何在Struts和Spring MVC中实现文件上传的详细说明。 **Apache Commons FileUpload** Apache Commons FileUpload是一个专门用于处理HTTP请求中的多部分/form-data(通常用于文件上传)的...
file标签:在页面上生成一个上传文件元素。 hidder标签:生成一个不看见的用户输入元素。 select标签:生成下拉列表框。 optiontransferselect标签:创建两个选项以及转移下拉列表项,该标签生成两个下拉列表框,...
在`struts1.2-jars`这个压缩包中,包含了Struts1.2运行所需的各个jar文件,比如`struts-core.jar`包含了框架的核心组件,`struts-tiles.jar`包含Tiles视图管理组件,`struts-taglib.jar`提供了与JSP相关的标签库,...
还深入探讨了如何利用Struts.2框架进行高效、安全的Web应用开发,包括但不限于表单处理、数据验证、异常处理、动态方法调用、文件上传下载、AJAX集成以及与Spring和Hibernate等其他流行框架的整合技术。 ### Struts...
在Web应用中,特别是涉及到用户提交表单并上传文件时,这个库非常有用。FileUpload库支持多部分/表单数据解析,能够将大文件分割成小块进行上传,以避免一次性加载整个文件到内存中,从而有效地管理服务器资源。它还...
file标签:在页面上生成一个上传文件元素。 hidder标签:生成一个不看见的用户输入元素。 select标签:生成下拉列表框。 optiontransferselect标签:创建两个选项以及转移下拉列表项,该标签生成两个下拉列表框,...
2. **Struts框架**:Struts作为MVC框架,提供了许多内置功能,如请求处理、表单验证、国际化支持、文件上传/下载、以及与各种数据库的集成等。它通过ActionServlet、ActionForm、Action和JSP等组件来实现MVC架构。 ...
7. **异步上传文件**:通过Ajax结合Struts,可以实现文件的异步上传,提供进度条反馈,提高用户体验。 8. **优化性能**:合理使用Ajax避免不必要的请求,结合Struts的缓存机制和分页功能,进一步提升应用性能。 在...
Struts框架的处理流程体现了MVC设计模式的精髓,它将请求处理过程分解为多个步骤,每个步骤都有明确的责任,这种高度模块化的设计使得Struts应用既易于开发又易于维护。通过深入理解Struts的处理流程,开发者可以...
2. **内存与磁盘管理**:当上传文件大小超出内存限制时,FileUpload可以自动将文件内容写入临时文件,避免内存溢出。 3. **文件大小限制**:允许设置最大文件大小和整个请求的总大小,以防止恶意大文件上传。 4. **...
- 多部分解析:FileUpload将HTTP请求体分解为多个部分,每个部分对应一个表单字段或上传文件。它解析边界字符串,以确定每个部分的开始和结束。 - 文件存储:上传的文件可以被临时存储在内存中(对于小文件),...
这两个库在Web应用开发,尤其是处理用户通过表单上传文件的情景下,扮演着重要角色。 **Apache Commons FileUpload** `commons-fileupload-1.4.jar`是Apache Commons项目的一部分,它提供了一套用于处理HTTP请求中...
它将整个请求分解为单独的部分,每个部分对应一个表单字段或上传文件。 2. **内存和磁盘管理**:为了处理大文件上传,FileUpload允许配置策略,将文件内容存储在内存或临时文件中。如果文件过大,超出内存限制,它...
3. **文档管理**:文件上传、下载、版本控制、权限设置,支持多种格式的电子文档。 4. **任务管理**:任务分配、进度跟踪、提醒功能,便于团队协作。 5. **会议管理**:预约会议室、发布会议通知、记录会议纪要。 6....
Tiles框架,全称为Tiles2,是Apache Struts项目的一个子项目,主要用于构建MVC(Model-View-Controller)应用程序的视图层。它提供了一种组织和重用页面布局(模板)的方式,允许开发者将一个大的页面分解为小的、可...
考虑到信息安全,资源上传时进行了加密处理,特别是对于文本文件和文档,以防止非授权访问导致的资源泄露。这样的设计不仅保护了教学资源的安全,也为可能涉及敏感信息的系统开发积累了经验。 此外,论文还详细探讨...