`
peigang
  • 浏览: 167305 次
  • 性别: 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属性文件详解

    Struts2属性文件详解 struts.configuration 该属性指定加载Struts 2配置文件的配置文件管理器.该属性的默认值是org.apache.Struts2.config.DefaultConfiguration, 这是Struts 2默认的配置文件管理器.如果需要实现...

    struts2 详解文档

    第一个Struts 2应用开发 解决Struts 2配置文件无提示问题 Action名称的搜索顺序 Action配置的各项默认值 result配置的各种视图转发类型 为Action属性注入值 指定Struts 2处理的请求后缀 Struts 2的处理...

    Struts 2+Hibernate+Spring整合开发技术详解随书源码

    Struts2+Hibernate+Spring整合开发技术详解 蒲子明 随书源码 因上传文件大小有限 只有19-21章。 其中 20章为 bbs 源码 21章为photo System源码

    (第三版)轻量级Java+EE企业应用实战:Struts2.2+Spring3.0+Hibernate3.6整合开发详解

    csdn只能上传50MB的,不够用,我上传的是网盘的下载地址,包含PDF和源码,PDF是226MB的清晰完整版,源码也是完整的。 附:源码使用方式,看到有.project的的,可以直接通过import导到myeclipse里面,没有这个文件的...

    Spring 2.5 jar 所有开发包及完整文档及项目开发实例

     这个jar文件包含Web应用开发时,用到Spring框架时所需的核心类,包括自动载入WebApplicationContext特性的类、Struts与JSF集成类、文件上传的支持类、Filter类和大量工具辅助类。 (12) spring-webmvc.jar  这个...

    spring jar 包详解

    (11) spring-web.jar 这个jar文件包含Web应用开发时,用到Spring框架时所需的核心类,包括自动载入WebApplicationContext特性的类、 Struts与JSF集成类、文件上传的支持类、Filter类和大量工具辅助类。 (12) ...

    Java Web程序设计教程

    6.5.2struts2文件上传实现方式 136 6.5.3struts2文件下载实现方式 141 本章小结 143 课后练习 144 第7章 struts2中应用模板语言 145 7.1模板语言简介 145 7.2应用velocity 146 7.2.1velocity基础 146 7.2.2...

    spring chm文档

    13.8. Spring对分段文件上传(multipart file upload)的支持 13.8.1. 介绍 13.8.2. 使用MultipartResolver 13.8.3. 在表单中处理分段文件上传 13.9. 使用Spring的表单标签库 13.9.1. 配置标签库 13.9.2. form...

    Spring-Reference_zh_CN(Spring中文参考手册)

    13.8. Spring对分段文件上传(multipart file upload)的支持 13.8.1. 介绍 13.8.2. 使用MultipartResolver 13.8.3. 在表单中处理分段文件上传 13.9. 使用Spring的表单标签库 13.9.1. 配置标签库 13.9.2. form标签 ...

    Spring 2.0 开发参考手册

    13.8. Spring对分段文件上传(multipart file upload)的支持 13.8.1. 介绍 13.8.2. 使用MultipartResolver 13.8.3. 在表单中处理分段文件上传 13.9. 使用Spring的表单标签库 13.9.1. 配置标签库 13.9.2. form...

    Spring API

    13.8. Spring对分段文件上传(multipart file upload)的支持 13.8.1. 介绍 13.8.2. 使用MultipartResolver 13.8.3. 在表单中处理分段文件上传 13.9. 使用Spring的表单标签库 13.9.1. 配置 13.9.2. form标签 ...

    Spring中文帮助文档

    13.8. Spring对分段文件上传(multipart file upload)的支持 13.8.1. 介绍 13.8.2. 使用MultipartResolver 13.8.3. 在表单中处理分段文件上传 13.9. 使用Spring的表单标签库 13.9.1. 配置 13.9.2. form标签 ...

    Web安全深度剖析(张柄帅)

    8.3.1 Struts2代码执行漏洞 166 8.3.2 ThinkPHP命令执行漏洞 169 8.3 防范命令执行漏洞 169 第9章 文件包含漏洞 171 9.1 包含漏洞原理解析 171 9.1.1 PHP包含 171 9.1.2 JSP包含 180 9.2 安全编写包含 184 9.3 小结 ...

    webx3框架指南PDF教程附学习Demo

    • Struts • Webwork • Tapestry • Spring MVC 以上框架都是非常优秀的。说实话,如果阿里巴巴网站在2001年开始,就有这么多可选择的话,无论选择哪一个都不会有问题。因为这些年来,所有的开源Web框架都在...

Global site tag (gtag.js) - Google Analytics