`
cheerwong
  • 浏览: 12921 次
  • 性别: Icon_minigender_1
文章分类
社区版块
存档分类
最新评论

struts2处理上传的文件

 
阅读更多
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文件上传下载源代码

    文件上传功能允许用户从他们的设备上传文件到服务器。在Struts2中,这通常通过表单实现,表单包含一个`&lt;input type="file"&gt;`元素,用户可以选择本地文件。Struts2的Action类会接收这个文件,并使用`Commons ...

    struts2实现文件上传下载

    Struts2提供了`FileUploadInterceptor`拦截器来处理文件上传请求。在处理文件上传时,开发者需要在Action类中声明一个`List&lt;FileInfo&gt;`类型的字段,用于接收上传的文件信息。`FileInfo`是自定义的类,包含`File`对象...

    Struts2多个文件上传

    Struts2是一个流行的Java web开发框架,用于构建企业级应用...无论是使用List集合还是数组,核心原理都是相同的,只是接收上传文件的对象类型不同。了解并掌握这一特性,对于开发支持文件上传功能的web应用至关重要。

    struts2文件上传jar

    2. **上传组件**:Struts2使用Apache Commons FileUpload库来处理文件上传。这个库负责解析请求中的多部分数据,将文件内容分离出来。`commons-fileupload.jar` 是这个库的实现,它包含了处理文件上传的基本类和接口...

    Struts2+上传文件源码

    这个"Struts2+上传文件源码"是一个演示如何在Struts2框架下实现文件上传的示例代码。 首先,我们来理解上传文件的基本流程。在Struts2中,文件上传是通过`Commons FileUpload`库来处理的,这是一个Apache提供的开源...

    struts2+jquery+ajax文件异步上传

    在Struts2的配置文件中,我们可以定义这些规则,例如限制上传文件的大小,只接受特定类型的文件(如图片、文档等)。此外,我们还需要关注安全问题,防止恶意文件上传。 文件上传的实现通常包括以下几个步骤: 1. ...

    swfuplaod+struts2实现多文件上传

    在文件上传场景中,Struts2可以处理上传的文件,将其保存到服务器,并返回相应的响应。 **三、SWFUpload与Struts2整合步骤** 1. **添加依赖**:首先,需要在项目中引入SWFUpload的JavaScript库和Flash对象,以及...

    struts2s上传文件

    在Struts2中,文件上传功能是一项常用的功能,允许用户通过Web表单上传文件到服务器。本篇将深入探讨Struts2中的文件上传机制、步骤以及常见问题。 首先,我们要理解文件上传的基本原理。在Web应用中,文件上传通常...

    struts2文件上传例子.rar

    同时,我们还需要配置`struts.multipart.saveDir`属性,指定临时文件保存的位置,以及`struts.multipart.maxSize`,限制上传文件的最大大小。 在视图层,通常会有一个HTML表单,使用`enctype="multipart/form-data...

    struts2框架下的文件上传

    在Struts2中,文件上传是一个常见的需求,可以帮助用户从客户端上传文件到服务器。本文将详细讲解Struts2框架下三种不同的文件上传方式:copy模式、字节流上传和字符流上传。 1. Copy模式文件上传: Copy模式是...

    struts2 实现文件批量上传

    Struts2是一个强大的MVC(模型-视图-控制器)...记得在实际操作时,确保服务器环境已经配置好相应的依赖,并且有足够的磁盘空间以处理上传的文件。同时,为了安全起见,应对上传文件进行权限控制,防止恶意文件的上传。

    JavaEE Struts文件上传

    Struts框架通过解析这个格式化的请求,可以获取到上传文件的信息。 1. **配置Struts2 Action**:在Struts2中,我们需要创建一个Action类来处理文件上传请求。这个类通常需要实现`ServletRequestAware`接口,以便...

    struts2文件上传实例

    通常,你需要设置`&lt;result&gt;`类型为`stream`,以便处理上传的文件。 2. **Action类**:创建一个继承自`ActionSupport`的类,并实现文件上传的方法。这个方法通常会接收一个`File`或`CommonsFileUpload`的`FileItem`...

    Struts2批量上传文件

    总结来说,实现Struts2批量上传文件涉及到的技术点包括Struts2拦截器、Apache Commons FileUpload、Action类的文件处理以及前端的文件验证。通过这些技术,我们可以创建一个稳定且功能完备的文件上传系统,既能处理...

    Struts2文件上传源码

    // 处理上传文件的逻辑 } } ``` 3. **表单提交**: 在前端HTML页面,创建一个`enctype="multipart/form-data"`的表单,这样浏览器会知道需要以多部分形式发送数据: ```html ``` 4. **处理上传**: ...

    struts2上传文件源代码

    在这个“struts2上传文件源代码”中,我们将深入探讨Struts2如何实现文件上传功能,以及涉及到的相关知识点。 首先,文件上传是Web应用中常见的功能,它允许用户从本地计算机选择文件并将其发送到服务器。在Struts2...

    struts2文件上传

    默认情况下,这个拦截器可能会限制上传文件的类型为`.txt`,并且大小不超过10MB。这种限制是为了防止恶意用户上传大文件或者非文本文件,从而可能对服务器造成压力或引入安全风险。 配置文件`struts.xml`中关于文件...

    struts2文件上传下载

    用户上传文件后,表单提交至`/fileManage/upload`这个URL地址,并由Struts2框架调用`UploadAction`的`execute()`方法进行处理。 ### Struts2文件下载知识点 虽然给定文件的内容中没有直接提及文件下载的实现方法,...

    Struts2之struts2文件上传详解案例struts011

    在Struts2中,文件上传功能是常见的需求,比如用户可能需要上传个人照片、文档或者其他类型的文件。在这个"Struts2之struts2文件上传详解案例struts011"中,我们将深入探讨如何实现这一功能。 首先,我们需要了解...

    struts2文件上传和下载

    Struts2允许设置最大上传文件大小,并通过`filter-mapping`配置限制可接受的MIME类型。 6. **错误处理与反馈**: 在处理文件上传和下载时,可能会出现各种异常,如文件不存在、磁盘空间不足等。因此,需要适当的错误...

Global site tag (gtag.js) - Google Analytics