`
peigang
  • 浏览: 170591 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

Struts2应用开发详解--14、文件上传和下载

    博客分类:
  • JAVA
阅读更多

一、文件上传

 

Struts2的文件上传需要commons-fileupload-1.2.1.jar,commons-io-1.3.2.jar文件。

第一个为文件上传组件,第二个为文件操作组件。

各部分代码必须遵守如下规则

1、页面代码片段如下

<form enctype="multipart/form-data" action="/test/upfile.action" method="post">
    <input type="file" name="photo" />
    <input type="submit" value="上传"/>
 </form>

注意红色标准部分会影响Struts2控件对数据的封装。

 

2、java代码如下

package test;

import java.io.File;
import java.io.IOException;

import org.apache.commons.io.FileUtils;
import org.apache.struts2.ServletActionContext;

import com.opensymphony.xwork2.ActionContext;

public class UploadAction {

 private File photo;  //Struts2将上传的文件封装到该对象中。

 private String photoContextType; //文件属性
 private String photoFileName; //上传文件的名称,文件名格式必须为 文件对象变量名+FileName。

 public File getPhoto() {
  return photo;
 }

 public void setPhoto(File photo) {
  this.photo = photo;
 }

 public String getPhotoFileName() {
  return photoFileName;
 }

 public void setPhotoFileName(String photoFileName) {
  this.photoFileName = photoFileName;
 }
 
 public String execute() throws IOException{
  String filePath = ServletActionContext.getServletContext().getRealPath("/upfiles"); //获取文件存放路径
  
  File toFile = new File(new File(filePath) , photoFileName); //创建要保存的文件。
  
  if(photo != null){ //判断源文件是否存在
   if(!toFile.getParentFile().exists()){  //判断文件存放路径是否存在
    toFile.getParentFile().mkdirs();  //创建文件存放路径
   }
   FileUtils.copyFile(photo, toFile);  //文件拷贝,将源文件复制到目的文件中。用该封装类实现了文件保存。

   ActionContext.getContext().put("message", "上传成功!");
  }
  
  return "success";
 }
 
}

 

二、文件下载

1、页面代码如下

 

 <form enctype="multipart/form-data" action="/test/upfiles.action" method="post">
  <input type="file" name="photos" /></br>
  <input type="file" name="photos" /></br>
  <input type="submit" value="上传"/>

相对于一个文件的页面设置,只是根据需要添加文件路径即可。

 2、java代码如下

 

 package test;

import java.io.File;
import java.io.IOException;

import org.apache.commons.io.FileUtils;
import org.apache.struts2.ServletActionContext;

import com.opensymphony.xwork2.ActionContext;

public class UploadsAction {

 private File[] photos;
 private String[] photosFileName;
 
 public File[] getPhotos() {
  return photos;
 }

 public void setPhotos(File[] photos) {
  this.photos = photos;
 }

 public String[] getPhotosFileName() {
  return photosFileName;
 }

 public void setPhotosFileName(String[] photosFileName) {
  this.photosFileName = photosFileName;
 }

 public String execute() throws IOException{
  String filePath = ServletActionContext.getServletContext().getRealPath("/upfiles");
  System.out.println(filePath);
  if(photos != null && photos.length > 0){
   File pf = new File(filePath);
   if(!pf.exists())pf.mkdirs();
   
   for(int i=0;i<photos.length;i++){
    File toFile = new File(pf,photosFileName[i]);

    FileUtils.copyFile(photos[i], toFile);
   }
   ActionContext.getContext().put("message", "上传成功!");
  }
  
  return "success";
 }

 
}

 

java代码中只需要对应的将属性变量改为数组类型,然后循环获取即可。

分享到:
评论

相关推荐

    Struts2属性文件详解

    该属性设定了Struts 2文件上传中整个请求内容的最大字节数限制,以防止过大的文件上传导致的问题。 #### struts.custom.properties 指定了Struts 2应用加载的用户自定义属性文件,自定义属性文件中的设置不会覆盖`...

    Struts 2 properties文件详解

    这些属性决定了Struts 2的行为特征以及与其他组件如Spring、文件上传组件等的集成方式。下面将详细介绍`struts.properties`文件中可以定义的关键配置项。 #### struts.configuration **描述**: 此属性用于指定加载...

    Struts2的常量详解

    struts.multipart.parser 属性指定处理 multipart/form-data 的 MIME 类型(文件上传)请求的框架,该属性支持 cos、pell 和 jakarta 等属性值,即分别对应使用 cos 的文件上传框架、pell 上传及 common-fileupload ...

    struts2常量详解

    例如,通过调整`struts.multipart.maxSize`可以防止因文件过大导致的服务器崩溃,而选择合适的`struts.multipart.parser`可以优化文件上传的效率。总之,掌握Struts2的常量配置是优化和调试Struts2应用的关键步骤。

    Struts2文件上传和下载教程

    ### Struts2文件上传与下载教程 #### 一、文件上传原理及实现 **1.1 基础概念** 文件上传是Web开发中的常见需求之一。在Struts2框架中,实现文件上传主要依赖于表单的`enctype`属性设置为`multipart/form-data`。...

    Struts 2权威指南--基于WebWork核心的MVC开发

    - **文件上传/下载**:如何处理文件的上传和下载操作。 **4.2 Struts 2 Action** Action是Struts 2的核心组件,负责处理用户的请求,并执行相应的业务逻辑。这里将详细讨论如何实现Action类,以及如何利用Struts 2...

    struts2的struts.properties配置文件详解

    14. struts.locale:这是Struts应用程序的默认国际化地区信息。 15. struts.mapper.class:这是一个ActionMapper实现类,Struts2用于处理请求映射。 16. struts.multipart.maxSize:这是multipart请求信息的最大...

    Struts2之Servlet文件上传详解案例struts010

    综上所述,本案例“Struts2之Servlet文件上传详解”将引导你了解如何结合Struts2和Servlet实现文件上传功能,包括配置、Action编写、JSP页面设计以及注意事项。通过实践,你将更深入地理解Struts2框架在处理复杂Web...

    Struts2配置文件详解

    Struts2是一个基于Java的开源Web应用程序框架,它简化了Web应用的开发过程并提高了代码的可维护性。`struts.xml`作为Struts2的核心配置文件,在项目中扮演着极其重要的角色。本文将详细介绍`struts.xml`文件中的关键...

    整合Struts_Hibernate_Spring应用开发详解

    ### 整合Struts_Hibernate_Spring应用开发详解 #### J2EE应用与环境 - **J2EE应用概述** - **J2EE应用的分层模型:** Java EE(J2EE)架构通常采用多层设计模式,主要包括表现层、业务逻辑层和服务层。这种分层有...

    Struts.2权威指南--基于WebWork核心的MVC开发.0007.pdf

    还深入探讨了如何利用Struts.2框架进行高效、安全的Web应用开发,包括但不限于表单处理、数据验证、异常处理、动态方法调用、文件上传下载、AJAX集成以及与Spring和Hibernate等其他流行框架的整合技术。 ### Struts...

    Struts2视频教程

    - **文件上传与下载**:Struts2内置了对文件上传的支持,可以轻松实现文件上传功能;同时也可以配置下载功能,满足文件分发的需求。 - **权限控制**:利用拦截器实现细粒度的权限控制,确保只有授权用户才能访问敏感...

    Struts2之命名空间详解及JSP文件上传了解案例struts009

    综上所述,Struts2的命名空间提供了一种有效的方式来组织和管理Action,而文件上传功能则使得处理用户上传的文件变得简单。在实际开发中,结合这两者,我们可以构建出功能丰富的Web应用。通过深入理解并实践这两个...

    Struts.2权威指南--基于WebWork核心的MVC开发.0001.pdf

    这些案例涵盖了用户认证、权限管理、表单处理、文件上传等多个方面,通过具体的代码示例和详细的步骤指导,展示了如何使用Struts.2和WebWork核心来解决实际开发中的常见问题。此外,书中还讨论了一些高级主题,如...

    struts.properties配置详解

    ### Struts2中struts.properties配置详解 #### 概述 在Struts2框架中,除了大家熟知的`struts.xml`配置文件之外,还有一个重要的配置文件——`struts.properties`。该文件主要用来存储一些Struts2的核心配置属性,...

    Struts2各配置文件详解.doc

    最后,文件上传相关的bean定义了不同的ActionMapper,如`DefaultActionMapper`、`CompositeActionMapper`、`RestfulActionMapper`和`Restful2ActionMapper`,它们处理不同类型的请求映射。 2)struts-plugin.xml 这...

    struts2核心配置文件

    Struts2框架是Java Web开发领域内一个重要的轻量级框架,它简化了基于MVC(Model-View-Controller)设计模式的应用程序开发过程。在Struts2框架中,有两个核心配置文件特别重要:`struts.xml` 和 `struts.properties...

    struts2 学习重点笔记

    Struts2 是一个功能强大且灵活的 Web 开发框架,它不仅能够帮助开发者快速搭建 Web 应用,还能通过其丰富的特性和扩展性满足复杂应用的需求。掌握 Struts2 的核心概念和技术要点,对于 Web 开发者来说至关重要。

Global site tag (gtag.js) - Google Analytics