`

struts2上传文件及多文件上传

阅读更多

1. struts2中的文件上传 第一步:在WEB=INF/lib下加入commons-fileupload-1.2.1.jar , commons-io-1.3.2.jar。 第二步:把form表单的enctype属性设置为"multipart/form-data",如

 

<form action="${pageContext.request.contextPath}/control/employee/list_execute.action" enctype="multipart/form-data" method="post">   
    文件:<input type="file" name="image">   
    <input type="submit" value="上传"/>   
  </form>   
  //${pageContext.request.contextPath}:获取服务器根路径   

 

第三步:在action中添加一下属性,

 

public class HelloWorldAction {   
    private File image;           //与jsp表单中的名称对应   
    private String imageFileName; //FileName为固定格式   
    private String imageContentType ;//ContentType为固定格式   
       
    public String getImageContentType() {   
        return imageContentType;   
    }   
    public void setImageContentType(String imageContentType) {   
        this.imageContentType = imageContentType;   
    }   
    public String getImageFileName() {   
        return imageFileName;   
    }   
    public void setImageFileName(String imageFileName) {   
        this.imageFileName = imageFileName;   
    }   
    public File getImage() {   
        return image;   
    }   
    public void setImage(File image) {   
        this.image = image;   
    }   
    public String execute() throws Exception{   
System.out.println("imageFileName = "+imageFileName);      
System.out.println("imageContentType = "+imageContentType);   
        //获取服务器的根路径realpath   
        String realpath = ServletActionContext.getServletContext().getRealPath("/images");   
System.out.println(realpath);   
        if(image!=null){   
            File savefile = new File(new File(realpath), imageFileName);   
            if(!savefile.getParentFile().exists()) savefile.getParentFile().mkdirs();   
            FileUtils.copyFile(image, savefile);   
            ActionContext.getContext().put("message", "上传成功");   
        }else{   
            ActionContext.getContext().put("message", "上传失败");   
        }   
        return "success";   
    }   
}   

 

 

此外,可以在struts.xml中配置上传文件的大小 
    <constant name="struts.multipart.maxSize" value="10701096"/> //最大上传配置成10M 
    默认的上传大小为2M 

思维拓展:如果要上传的文件非常大,如上传的是电影,好几百M ,用web上传一般是不可能难上传成功的,这时候要安装一个插件,类似于应用程序 
          socket ,通过网络通讯上传。 

2 . 多文件上传 
    在上面的基础上略加改动 
    1.jsp表单 

  1. <form action="${pageContext.request.contextPath}/control/employee/list_execute.action" enctype="multipart/form-data" method="post">  
  2.     文件1:<input type="file" name="image"><br/>  
  3.     文件2:<input type="file" name="image"><br/>  
  4.     文件3:<input type="file" name="image"><br/>  
  5.     <input type="submit" value="上传"/>  
  6.   </form>  

 

  2. action中用数组接收 

 public class HelloWorldAction {   
    private File[] image;   
    private String[] imageFileName;   
    private String[] imageContentType ;   
    //省略了set和get方法   
    public String execute() throws Exception{   
           
        String realpath = ServletActionContext.getServletContext().getRealPath("/images");   
        System.out.println(realpath);   
        if(image!=null){   
            File savedir = new File(realpath);   
            if(!savedir.exists())   
               {    
                  savedir.mkdirs();   
               }   
        System.out.println("image.length = "+image.length);   
            for(int i = 0 ; i<image.length ; i++){   
                   
System.out.println("imageContentType["+i+"] = "+imageContentType[i]);   
                File savefile = new File(savedir, imageFileName[i]);   
                FileUtils.copyFile(image[i], savefile);   
            }   
            ActionContext.getContext().put("message", "上传成功");   
        }   
        return "success";   
    }   
}   

 

分享到:
评论

相关推荐

    struts2实现文件上传下载

    首先,我们需要了解Struts2中的文件上传机制。Struts2提供了`FileUploadInterceptor`拦截器来处理文件上传请求。在处理文件上传时,开发者需要在Action类中声明一个`List&lt;FileInfo&gt;`类型的字段,用于接收上传的文件...

    Struts2多个文件上传

    在Struts2中,文件上传功能是一个常用特性,尤其在处理用户提交的多个文件时。本文将详细讲解如何使用Struts2进行多个文件的上传,重点是使用List集合进行上传。 首先,要实现Struts2的文件上传,必须引入必要的...

    struts2文件上传下载源代码

    在Struts2中,文件上传和下载是常见的功能需求,特别是在处理用户交互和数据交换时。这篇博客文章提供的"struts2文件上传下载源代码"旨在帮助开发者理解和实现这些功能。 文件上传功能允许用户从他们的设备上传文件...

    struts2上传文件源代码

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

    Struts2上传文件(直接用request)

    Struts2上传文件(直接用request)

    struts2上传文件进度条显示

    Struts2作为一款流行的Java Web框架,提供了丰富的功能来处理用户请求,包括文件上传。在Struts2中实现文件上传并展示进度条是一项常见的需求,它能提升用户体验,尤其是在处理大文件时。以下将详细解释如何在Struts...

    JavaEE Struts文件上传

    2. **添加Struts2插件**:Struts2的文件上传功能依赖于`struts2-convention-plugin`和`struts2-core`等库。在`struts.xml`配置文件中,需要启用Multipart解析器,例如添加`&lt;constant name="struts.multipart.parser...

    swfuplaod+struts2实现多文件上传

    下面将详细介绍如何利用SWFUpload与Struts2来实现多文件上传。 **一、SWFUpload组件介绍** SWFUpload 是一个JavaScript库,它利用Flash技术提供了一个高级的文件上传体验。它的主要特性包括: 1. **多文件选择**...

    struts2上传文件及拦截器

    struts2上传单个文件及多个文件,strus2拦截器的使用,里面有个user用户,先执行user.jsp即登陆,可以执行上传文件的操作,反之,不能,有个exit.jsp,退出之后不能执行。里面含有jar文件,导入myeclipse可以执行...

    struts2 上传文件及打包下载zip

    在这个"struts2 上传文件及打包下载zip"的示例中,我们将探讨如何利用Struts2实现文件上传和下载功能。 首先,文件上传是Web应用程序中的常见需求。在Struts2中,我们可以使用`Struts2`提供的`CommonsFileUpload`...

    struts2文件上传

    Struts2 文件上传是Web开发中的一个重要功能,它允许用户从他们的本地计算机向服务器传输文件。在Struts2框架中,文件上传是通过特定的拦截器实现的,这些拦截器处理了文件上传请求并提供了安全性和大小限制。下面将...

    struts2文件上传例子.rar

    在处理文件上传时,Struts2会使用`Commons FileUpload`库,这个库提供了解析多部分HTTP请求的能力。每个上传的文件会被封装成`FileItem`对象,我们可以遍历这些对象,对每个文件进行处理。例如,将文件保存到服务器...

    struts2 实现文件批量上传

    1. **文件上传组件**:在Struts2中,我们通常使用`Commons FileUpload`库来处理文件上传。这个库提供了处理多部分HTTP请求的能力,是Java中处理文件上传的标准库。我们需要在Struts2配置文件中引入对应的拦截器`...

    struts2实现多文件上传下载

    1.能够对多个文件进行上传(可以选择上传文件个数,也即上传文件个数不定) 2.能够对上传路径进行配置文件指定(upload.properties),使用了一些类似单例模式的静态代码块 3.Struts2进行下载处理,能对上传的所有...

    struts2实现多文件上传功能

    Struts2提供了完善的文件上传支持,让我们来详细探讨如何在Struts2中实现多文件上传。 首先,我们需要在Struts2的配置文件(struts.xml)中启用文件上传的支持。这通常涉及到添加`&lt;constant&gt;`标签来设置`struts....

    struts2 文件上传

    struts2 文件上传 struts2上传标签file fileuploadstruts2 文件上传 struts2上传标签file fileuploadstruts2 文件上传 struts2上传标签file fileupload

    struts2多文件的上传

    这可以通过添加`&lt;constant&gt;`标签来设置`struts.multipart.parser`为jakarta,这是Struts2推荐的多部分解析器,以支持大文件上传。同时,设置`struts.multipart.maxSize`属性,限制上传文件的大小。 ```xml ...

    struts2+jquery+ajax文件异步上传

    在文件上传场景中,Struts2主要负责接收前端发送的文件数据,并将这些数据存储到服务器的指定位置。配置Struts2的Action类和相应的XML配置文件,可以定义文件上传的处理逻辑。 接着,jQuery是一个高效、简洁的...

    Struts2文件上传源码

    6. **源码分析**: 要深入理解Struts2的文件上传机制,你需要查看Struts2的源码,特别是`org.apache.struts2.dispatcher.multipart.JakartaMultiPartRequest`和`org.apache.struts2.components.Form`这两个类。...

    struts2实现的多个文件上传

    在处理文件上传时,Struts2提供了便捷的API和配置方式,使得开发人员能够轻松实现多文件上传的功能。下面将详细阐述如何使用Struts2来实现多个文件的上传。 首先,理解文件上传的基本原理。在HTTP协议中,文件上传...

Global site tag (gtag.js) - Google Analytics