`

Struts2实现文件上传实例...

阅读更多

1.UploadAction.java

 

package lee;

import com.opensymphony.xwork2.ActionSupport;
import org.apache.struts2.ServletActionContext;
import java.io.File;
import java.io.*;
public class UploadAction extends ActionSupport {
 private String title;
 private File upload;
 private String uploadContentType;    //这两个属性是必须有的,有框架要用
 private String uploadFileName;   //这两个属性是必须有的,有框架要用


 //接受依赖注入的属性
 
 private String savePath;

 public String getTitle() {
  return title;
 }

 public void setTitle(String title) {
  this.title = title;
 }

 public File getUpload() {
  return upload;
 }

 public void setUpload(File upload) {
  this.upload = upload;
 }

 public String getUploadContentType() {
  return uploadContentType;
 }

 public void setUploadContentType(String uploadContentType) {
  this.uploadContentType = uploadContentType;
 }

 public String getUploadFileName() {
  return uploadFileName;
 }

 public void setUploadFileName(String uploadFileName) {
  this.uploadFileName = uploadFileName;
 }

 public String getSavePath() {
  return ServletActionContext.getRequest().getRealPath(savePath);
 }
 //接受依赖注入的方法
 public void setSavePath(String savePath) {
  this.savePath = savePath;
 }
    public String execute()throws Exception{
     System.out.println("开始上传单个文件-------------");
     System.out.println(this.getSavePath());
     System.out.println("=========="+this.getUploadFileName());
     System.out.println("=========="+this.getUploadContentType());
     System.out.println("=========="+this.getUpload());
     //以服务器的文件保存地址和原文件名建立上传文件输出流
     FileOutputStream fos=new FileOutputStream(this.getSavePath()+"\\"+this.getUploadFileName());
     FileInputStream fis=new FileInputStream(this.getUpload());
     byte[] buffer=new byte[1024];
     int len=0;
     while((len=fis.read(buffer))>0){
      fos.write(buffer,0,len);
     }
     return SUCCESS;
    }
}

 

2.struts.xml

 

<?xml version="1.0" encoding="UTF-8"?>

<!DOCTYPE struts PUBLIC
    "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"
    "http://struts.apache.org/dtds/struts-2.0.dtd">
 
<struts>

 <constant name="struts.custom.i18n.resources" value="globalMessages"/>
 <constant name="struts.i18n.encoding" value="GBK"/>

 <package name="lee" extends="struts-default">
 
  <action name="upload" class="lee.UploadAction">
            <param name="savePath">/upload</param>
   <result>/succ.jsp</result> 
  </action>  
 </package>
</struts> 

 

3.web.xml

 

<?xml version="1.0" encoding="UTF-8"?>
<web-app version="2.4"
 xmlns="http://java.sun.com/xml/ns/j2ee"
 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
 xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee
 http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">
  <welcome-file-list>
    <welcome-file>login.jsp</welcome-file>
  </welcome-file-list>
 <!-- 定义Struts2的FilterDispathcer的Filter -->
  <filter>
        <filter-name>struts2</filter-name>
        <filter-class>org.apache.struts2.dispatcher.FilterDispatcher</filter-class>
    </filter>

<!-- FilterDispatcher用来初始化struts2并且处理所有的WEB请求。 -->
      <filter-mapping>
        <filter-name>struts2</filter-name>
        <url-pattern>/*</url-pattern>
    </filter-mapping>
  
  </web-app>

 

4.upload.html

 

 

<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=GBK" />
<title>简单的文件上传</title>
</head>
<body>
<form action="upload.action" method="post" enctype="multipart/form-data">
   文件标题:<input type="text" name="title" /><br>
   选择文件:<input type="file" name="upload" /><br>
 <input value="上传" type="submit" />
</form>
</body>

 

 

5.succ.jsp

 

<%@ page language="java" contentType="text/html;charset=GBK"%>
<%@taglib prefix="s" uri="/struts-tags"%>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>
   <title>上传成功!</title>
  </head>
 
  <body>
  上传成功!<br>
  文件标题:<s:property value="+ title"/>
  文件为:<img src="<s:property value="'upload/' + uploadFileName"/>"/><br>
  </body>
</html>

</html>

 

 

另外要注意在根目录下面建upload文件夹

分享到:
评论
2 楼 processer_java 2010-03-04  
拦截器那样配置,还是一样拿不到文件名!
1 楼 hufeng 2009-07-28  
private File upload;
file的路径貌似本地路径,在自己的机器的ie上没问题,去局域网别的机器行吗?

相关推荐

    Struts2多文件上传下载实例

    在实际项目中,文件上传和下载功能是必不可少的,本实例将详细讲解如何在Struts2框架下实现单个文件及多个文件的上传与下载。 首先,我们需要在Struts2的配置文件(struts.xml)中添加相关的Action配置,以便处理文件...

    struts2文件上传下载实例

    在“struts2文件上传下载实例”中,我们将探讨如何在Struts2框架下实现文件的上传和下载功能,这对于许多Web应用程序来说是必不可少的特性。 首先,`pom.xml`文件是Maven项目对象模型的配置文件,它定义了项目的...

    struts2文件上传实例

    在Struts2框架下实现文件上传,主要涉及到以下几个核心概念和技术点: 1. **.struts2配置**:在Struts2框架中,需要在`struts.xml`配置文件中添加相应的action配置,声明文件上传的处理方法。通常,你需要设置`...

    struts.xml文件详解.doc

    10. struts.multipart.maxSize:定义文件上传请求内容的最大允许字节数。 11. struts.custom.properties:指定Struts 2应用加载的用户自定义属性文件,允许扩展配置。 struts.xml文件则是Struts 2框架的核心配置,...

    Struts2各配置文件详解.doc

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

    Struts2详解,Struts2与Struts1的区别

    新手必备,看完绝对思路清晰。醍醐灌顶啊! 一. Struts2介绍 1. Struts2简介 2. Struts2和Struts1的常见... 实现文件上传 12. Struts2的拦截器 13. 拒绝表单重复提交 四. OGNL表达式 五. Struts2中常用标签

    struts2文件上传中的struts.multipart.saveDir提示信息

    在实现文件上传时,Struts2需要一个临时目录来保存上传的文件内容,直到它们被完全接收并处理。这个临时目录是通过配置参数`struts.multipart.saveDir`来指定的。如果未设置此参数,当尝试上传文件时,Struts2框架将...

    一个Struts1多文件上传实例(附Form中传List示例)

    本实例主要探讨如何在Struts1中实现多文件上传功能,并结合Form中传递List类型的数据,这对于理解MVC模式下的文件处理和数据传递有重要作用。我们将深入讨论以下几个关键知识点: 1. **Struts1框架基础**: Struts...

    文件上传struts2实现实例

    本实例将详细讲解如何在Struts2框架下实现文件上传,涵盖单文件和多文件上传的场景。 首先,理解文件上传的基本原理。在Web应用中,用户通过表单提交文件时,浏览器会将文件内容编码成二进制流,并将其封装在HTTP...

    详解struts2中struts.properties.doc

    Struts2 框架是Java Web开发中广泛使用的MVC框架之一,它提供了一种组织应用程序的方式,便于实现业务逻辑和视图的分离。在Struts2中,配置文件起着至关重要的作用,其中`struts.xml`用于管理Action映射和Result定义...

    java struts2入门学习实例--使用struts2快速实现多个文件上传.doc

    ### Java Struts2入门学习实例——使用Struts2快速实现多个文件上传 #### 知识点一:配置Struts2中的错误提示信息 在开发基于Java的Web应用程序时,经常需要处理用户上传文件的需求。而Struts2框架因其灵活性与...

    struts2经典实例

    `struts2-mailreader-2.0.1.war` 是一个模拟邮件阅读器的实例,展示了Struts2处理表单数据、文件上传、用户认证和授权的使用。它可以帮助开发者理解如何在Struts2中实现用户交互和数据管理。 3. **Struts2 Portlet...

    Struts1实现文件上传源码

    在这个“Struts1实现文件上传源码”实例中,我们将深入探讨如何利用Struts1框架来处理文件上传操作。 在Web应用中,文件上传功能是非常常见的,比如用户上传头像、提交文档等。Struts1提供了ActionForm类和一系列...

    Struts2的常量详解

    struts.multipart.maxSize 属性指定 Struts 2 文件上传中整个请求内容允许的最大字节数。 11. struts.custom.properties struts.custom.properties 属性指定 Struts 2 应用加载用户自定义的属性文件,该自定义属性...

    struts实现任意多文件上传实例

    总的来说,"struts实现任意多文件上传实例"是一个实用的示例,可以帮助开发者了解和掌握在Struts中进行多文件上传的完整流程。通过学习这个实例,你可以更深入地理解Struts框架和文件上传的处理方式。

    java 文件上传(包括struts2文件上传,smartupload,基于apatch 的fileupload的文件上传)

    java 文件上传(包括struts2文件上传,smartupload,基于apatch 的fileupload的文件上传):该文件包括文件上传的多个实例:有基于strtus2自带的文件上传实例、smartupload文件实例 和基于aptche自带的fileupload 的...

    Struts2属性文件详解

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

    struts2 文件上传实例

    在这个实例中,我们将深入探讨如何利用Struts2实现文件上传,并关注其配置细节。 首先,文件上传的核心类是`org.apache.struts2.servlet.multipart.FileUpload`,它是Struts2框架内置的多功能工具,可以处理HTTP...

    uploadify+struts2多文件上传实例

    `uploadify`与`Struts2`结合的多文件上传实例就是一个典型的解决方案,尤其针对跨浏览器兼容性问题,如在Firefox下的session问题。下面我们将深入探讨这两个技术以及它们如何协同工作。 `Uploadify`是一个基于...

    struts2实例 自定义过滤器 文件上传下载 登录功能

    本实例展示了如何在Struts2环境中实现几个关键功能:自定义过滤器、文件上传下载以及用户登录功能。这些功能是任何Web应用程序的基础组成部分,理解和掌握它们对于提升Web开发技能至关重要。 首先,我们来探讨...

Global site tag (gtag.js) - Google Analytics