`
liuxinglanyue
  • 浏览: 560418 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

struts2上传文件及多文件上传

阅读更多

1. struts2中的文件上传 
第一步:在WEB=INF/lib下加入commons-fileupload-1.2.1.jar , commons-io-1.3.2.jar。 

第二步:把form表单的enctype属性设置为"multipart/form-data",如 
 

Java代码 
  1. <form action="${pageContext.request.contextPath}/control/employee/list_execute.action" enctype="multipart/form-data" method="post">  
  2.     文件:<input type="file" name="image">  
  3.     <input type="submit" value="上传"/>  
  4.   </form>  
  5.   //${pageContext.request.contextPath}:获取服务器根路径  
    
第三步:在action中添加一下属性, 
Java代码 
  1. public class HelloWorldAction {  
  2.     private File image;           //与jsp表单中的名称对应  
  3.     private String imageFileName; //FileName为固定格式  
  4.     private String imageContentType ;//ContentType为固定格式  
  5.       
  6.     public String getImageContentType() {  
  7.         return imageContentType;  
  8.     }  
  9.     public void setImageContentType(String imageContentType) {  
  10.         this.imageContentType = imageContentType;  
  11.     }  
  12.     public String getImageFileName() {  
  13.         return imageFileName;  
  14.     }  
  15.     public void setImageFileName(String imageFileName) {  
  16.         this.imageFileName = imageFileName;  
  17.     }  
  18.     public File getImage() {  
  19.         return image;  
  20.     }  
  21.     public void setImage(File image) {  
  22.         this.image = image;  
  23.     }  
  24.     public String execute() throws Exception{  
  25. System.out.println("imageFileName = "+imageFileName);     
  26. System.out.println("imageContentType = "+imageContentType);  
  27.         //获取服务器的根路径realpath  
  28.         String realpath = ServletActionContext.getServletContext().getRealPath("/images");  
  29. System.out.println(realpath);  
  30.         if(image!=null){  
  31.             File savefile = new File(new File(realpath), imageFileName);  
  32.             if(!savefile.getParentFile().exists()) savefile.getParentFile().mkdirs();  
  33.             FileUtils.copyFile(image, savefile);  
  34.             ActionContext.getContext().put("message""上传成功");  
  35.         }else{  
  36.             ActionContext.getContext().put("message""上传失败");  
  37.         }  
  38.         return "success";  
  39.     }  
  40. }  
   
此外,可以在struts.xml中配置上传文件的大小 
    <constant name="struts.multipart.maxSize" value="10701096"/> //最大上传配置成10M 
    默认的上传大小为2M 

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

2 . 多文件上传 
    在上面的基础上略加改动 
    1.jsp表单 
 
Java代码 
  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中用数组接收 
 
Java代码 
  1.   public class HelloWorldAction {  
  2.     private File[] image;  
  3.     private String[] imageFileName;  
  4.     private String[] imageContentType ;  
  5.     //省略了set和get方法  
  6.     public String execute() throws Exception{  
  7.           
  8.         String realpath = ServletActionContext.getServletContext().getRealPath("/images");  
  9.         System.out.println(realpath);  
  10.         if(image!=null){  
  11.             File savedir = new File(realpath);  
  12.             if(!savedir.exists())  
  13.                {   
  14.                   savedir.mkdirs();  
  15.                }  
  16.         System.out.println("image.length = "+image.length);  
  17.             for(int i = 0 ; i<image.length ; i++){  
  18.                   
  19. System.out.println("imageContentType["+i+"] = "+imageContentType[i]);  
  20.                 File savefile = new File(savedir, imageFileName[i]);  
  21.                 FileUtils.copyFile(image[i], savefile);  
  22.             }  
  23.             ActionContext.getContext().put("message""上传成功");  
  24.         }  
  25.         return "success";  
  26.     }  
  27. }  

分享到:
评论

相关推荐

    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