`

一个简单的struts实现文件上传示例

阅读更多
转载:
http://hi.baidu.com/javajavajava/blog
upload.jsp

<%@ page language="java" pageEncoding="GB18030"%>
<%@ taglib uri="http://struts.apache.org/tags-bean" prefix="bean"%> 
<%@ taglib uri="http://struts.apache.org/tags-html" prefix="html"%>
<%@ taglib uri="http://struts.apache.org/tags-logic" prefix="logic"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>
<html> 
<head>
   <title>JSP for UploadForm form</title>
</head>
<body>
   <html:form action="/upload" enctype="multipart/form-data">
    file : <html:file property="file"/><html:errors property="file"/><br/>
    <html:submit value="上传"/>
   </html:form>
   <hr>
   <logic:present name="fileName">
   <html:link href="<%=basePath+"myupload/"+request.getAttribute("fileName") %>"
   target="_blank" useLocalEncoding="gb2312">
    <bean:write name="fileName"/>
   </html:link>
   <bean:write name="size"/>
   </logic:present>
</body>
</html>

struts-config.xml

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE struts-config PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 1.3//EN" "http://struts.apache.org/dtds/struts-config_1_3.dtd">

<struts-config>
<form-beans >
    <form-bean name="uploadForm" type="com.huqianhao.struts.form.UploadForm" />
    </form-beans>

<global-exceptions />
<global-forwards />
<action-mappings >
    <action
      attribute="uploadForm"
      input="/upload.jsp"
      name="uploadForm"
      path="/upload"
      scope="request"
      type="com.huqianhao.struts.action.UploadAction">
      <forward name="upload" path="/upload.jsp" />
    </action>

</action-mappings>

<message-resources parameter="com.huqianhao.struts.ApplicationResources" />
</struts-config>

UploadAction.java

/*
* Generated by MyEclipse Struts
* Template path: templates/java/JavaClass.vtl
*/
package com.huqianhao.struts.action;

import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import org.apache.struts.action.Action;
import org.apache.struts.action.ActionForm;
import org.apache.struts.action.ActionForward;
import org.apache.struts.action.ActionMapping;
import org.apache.struts.upload.FormFile;

import com.huqianhao.struts.form.UploadForm;

/**
* MyEclipse Struts Creation date: 01-12-2008
* 
* XDoclet definition:
* 
* @struts.action path="/upload" name="uploadForm" input="/upload.jsp"
*                scope="request" validate="true"
*/
public class UploadAction extends Action {
/*
* Generated Methods
*/

/**
* Method execute
* 
* @param mapping
* @param form
* @param request
* @param response
* @return ActionForward
*/
public ActionForward execute(ActionMapping mapping, ActionForm form,
    HttpServletRequest request, HttpServletResponse response) {
   UploadForm uploadForm = (UploadForm) form;
   FormFile file = uploadForm.getFile();
   String fileName = file.getFileName();
   String contentType = file.getContentType();
   String size = (file.getFileSize() + " bytes");
   try {
    InputStream stream = file.getInputStream();
    // 把内容写到指定的文件中
    OutputStream bos = new FileOutputStream(request.getRealPath("")
      + "/myupload/" + fileName);
    int bytesRead = 0;
    byte[] buffer = new byte[8192];
    while ((bytesRead = stream.read(buffer, 0, 8192)) != -1) {
     bos.write(buffer, 0, bytesRead);
    }
    bos.close();
    stream.close();
   } catch (FileNotFoundException e) {
    e.printStackTrace();
   } catch (IOException e) {
    e.printStackTrace();
   }
   request.setAttribute("fileName", fileName);
   request.setAttribute("size", size);
   request.setAttribute("contentType", contentType);
   return mapping.findForward("upload");
}
}

UploadForm.java

/*
* Generated by MyEclipse Struts
* Template path: templates/java/JavaClass.vtl
*/
package com.huqianhao.struts.form;

import javax.servlet.http.HttpServletRequest;
import org.apache.struts.action.ActionErrors;
import org.apache.struts.action.ActionForm;
import org.apache.struts.action.ActionMapping;
import org.apache.struts.upload.FormFile;

/** 
* MyEclipse Struts
* Creation date: 01-12-2008
* 
* XDoclet definition:
* @struts.form name="uploadForm"
*/
public class UploadForm extends ActionForm {
/*
* Generated fields
*/

/** file property */
private FormFile file;

/*
* Generated Methods
*/

/** 
* Method validate
* @param mapping
* @param request
* @return ActionErrors
*/
public ActionErrors validate(ActionMapping mapping,
    HttpServletRequest request) {
   // TODO Auto-generated method stub
   return null;
}

/** 
* Method reset
* @param mapping
* @param request
*/
public void reset(ActionMapping mapping, HttpServletRequest request) {
   // TODO Auto-generated method stub
}

public FormFile getFile() {
   return file;
}

public void setFile(FormFile file) {
   this.file = file;
}
}

分享到:
评论

相关推荐

    完整struts2文件上传示例

    Struts2是一个强大的MVC(模型-视图-控制器)...通过以上步骤,你就可以实现一个完整的Struts2文件上传功能。在实际开发中,还需要考虑到性能优化、用户体验、安全性等多个方面,以提供更健壮、安全的文件上传服务。

    struts文件上传示例

    在这个"Struts文件上传示例"中,我们将深入探讨如何在Struts框架下实现文件上传功能,以及相关的关键知识点。 首先,理解文件上传的基本流程至关重要。在Web应用中,用户通过表单选择本地文件,然后提交到服务器。...

    Struts2文件上传示例

    这个"Struts2文件上传示例"包含了如何在实际项目中实现这一功能的代码和配置。 首先,我们需要了解Struts2中的Action类。Action类是处理用户请求的核心,通常会有一个或多个方法与JSP页面上的表单提交事件关联。在...

    struts实现的文件上传下载功能

    总结起来,使用Struts实现文件上传下载涉及前端表单设计、后端处理逻辑、文件存储策略以及安全控制等多个方面。在实践中,我们还需要考虑到性能优化和用户体验提升,例如使用异步上传、进度条展示等技术。

    Struts2文件上传程序示例

    总之,Struts2文件上传程序示例是一个实用的教学资源,它涵盖了文件上传的基本流程和关键配置,包括前端表单设计、后端Action处理、配置文件设置等。对于初学者来说,这是一个很好的起点,可以深入理解MVC框架中文件...

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

    总之,这个实例提供了关于Struts1中文件上传和复杂表单数据处理的实战经验,对于学习Java Web开发和Struts1框架的开发者来说,这是一个非常有价值的参考。通过实际操作和调试,可以加深对Struts1处理文件上传和复杂...

    struts2.0 文件上传示例

    Struts2.0 文件上传是Java Web开发中的一个重要功能,常用于用户提交各种类型的文件,如图片、文档等。在本示例中,我们将深入探讨如何利用Struts2.0框架实现图片上传,并关注如何限制文件类型、大小以及保存路径。 ...

    struts实现文件上传和下载源代码

    在这个"struts实现文件上传和下载源代码"项目中,我们将会探讨如何使用Struts框架来实现在Web应用中进行文件的上传和下载功能,同时还会关注对于大文件(超过3MB)的处理策略。 1. **文件上传** 文件上传是Web应用...

    struts与hibernate实现文件的上传与动态下载

    通过以上步骤,你可以实现一个基于Struts2和Hibernate的文件上传与动态下载系统。这个系统能够处理用户上传的文件,将其保存到服务器,同时提供动态下载功能,允许用户根据需要下载文件。在实际开发中,还需要考虑...

    struts2文件上传的一个简单的例子

    本示例将详细介绍如何在Struts2框架下实现一个简单的文件上传功能。 首先,我们需要理解Struts2文件上传的基本原理。Struts2提供了一个名为`FileUpload interceptor`的拦截器,用于处理文件上传请求。这个拦截器会...

    JavaEE Struts文件上传

    通过分析这些文件,你可以看到一个完整的Struts2文件上传应用的结构和实现细节。 学习Struts2文件上传不仅需要掌握上述概念和技术,还需要了解文件安全性、异常处理和服务器配置等相关知识。在实际应用中,确保文件...

    struts1实现文件上传

    ### Struts1 实现文件上传的关键技术点 在Struts1框架中实现文件上传功能是一项常见但又具有一定技术挑战的任务。下面将详细解析文件上传的实现过程,包括关键类的使用、文件处理逻辑以及异常处理等方面。 #### ...

    struts2文件上传下载源代码

    1. **配置Struts2 Action**:在`struts.xml`配置文件中,你需要定义一个Action,该Action负责处理文件上传请求。Action的类需要继承自`ActionSupport`,并覆盖`execute()`方法,以便处理上传的文件。 2. **设置...

    Struts2文件上传的一个简单示例

    本示例将详细介绍如何在Struts2框架下实现一个简单的文件上传功能。 1. **Struts2配置** 在开始文件上传之前,我们需要在`struts.xml`配置文件中声明一个Action,这个Action将处理文件上传请求。你需要定义一个...

    struts实现文件上传

    在Struts框架中实现文件上传是一项常见的需求,它允许用户通过Web界面上传本地文件到服务器。文件上传功能在许多应用场景中都是必不可少的,如用户头像上传、文档分享等。 在Struts中实现文件上传主要涉及到以下几...

    在Struts 2中实现文件上传

    在 Struts 2 中实现文件上传,首先需要在 JSP 页面创建一个支持多部分数据的表单。例如,在 `FileUpload.jsp` 文件中,表单的 `method` 应设置为 `POST`,`enctype` 应设置为 `multipart/form-data`。此外,使用 `...

    struts2实现单个和多个文件上传示例代码

    Struts2是一个强大的Java web框架,它为开发者提供了丰富的功能,包括处理用户表单提交、文件上传等。在本示例中,我们将深入探讨如何利用Struts2来实现单个和多个文件的上传功能。 首先,我们需要理解文件上传的...

    Struts2多个文件上传

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

Global site tag (gtag.js) - Google Analytics