转载:
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是一个强大的MVC(模型-视图-控制器)...通过以上步骤,你就可以实现一个完整的Struts2文件上传功能。在实际开发中,还需要考虑到性能优化、用户体验、安全性等多个方面,以提供更健壮、安全的文件上传服务。
在这个"Struts文件上传示例"中,我们将深入探讨如何在Struts框架下实现文件上传功能,以及相关的关键知识点。 首先,理解文件上传的基本流程至关重要。在Web应用中,用户通过表单选择本地文件,然后提交到服务器。...
这个"Struts2文件上传示例"包含了如何在实际项目中实现这一功能的代码和配置。 首先,我们需要了解Struts2中的Action类。Action类是处理用户请求的核心,通常会有一个或多个方法与JSP页面上的表单提交事件关联。在...
总结起来,使用Struts实现文件上传下载涉及前端表单设计、后端处理逻辑、文件存储策略以及安全控制等多个方面。在实践中,我们还需要考虑到性能优化和用户体验提升,例如使用异步上传、进度条展示等技术。
总之,Struts2文件上传程序示例是一个实用的教学资源,它涵盖了文件上传的基本流程和关键配置,包括前端表单设计、后端Action处理、配置文件设置等。对于初学者来说,这是一个很好的起点,可以深入理解MVC框架中文件...
总之,这个实例提供了关于Struts1中文件上传和复杂表单数据处理的实战经验,对于学习Java Web开发和Struts1框架的开发者来说,这是一个非常有价值的参考。通过实际操作和调试,可以加深对Struts1处理文件上传和复杂...
Struts2.0 文件上传是Java Web开发中的一个重要功能,常用于用户提交各种类型的文件,如图片、文档等。在本示例中,我们将深入探讨如何利用Struts2.0框架实现图片上传,并关注如何限制文件类型、大小以及保存路径。 ...
在这个"struts实现文件上传和下载源代码"项目中,我们将会探讨如何使用Struts框架来实现在Web应用中进行文件的上传和下载功能,同时还会关注对于大文件(超过3MB)的处理策略。 1. **文件上传** 文件上传是Web应用...
通过以上步骤,你可以实现一个基于Struts2和Hibernate的文件上传与动态下载系统。这个系统能够处理用户上传的文件,将其保存到服务器,同时提供动态下载功能,允许用户根据需要下载文件。在实际开发中,还需要考虑...
本示例将详细介绍如何在Struts2框架下实现一个简单的文件上传功能。 首先,我们需要理解Struts2文件上传的基本原理。Struts2提供了一个名为`FileUpload interceptor`的拦截器,用于处理文件上传请求。这个拦截器会...
通过分析这些文件,你可以看到一个完整的Struts2文件上传应用的结构和实现细节。 学习Struts2文件上传不仅需要掌握上述概念和技术,还需要了解文件安全性、异常处理和服务器配置等相关知识。在实际应用中,确保文件...
### Struts1 实现文件上传的关键技术点 在Struts1框架中实现文件上传功能是一项常见但又具有一定技术挑战的任务。下面将详细解析文件上传的实现过程,包括关键类的使用、文件处理逻辑以及异常处理等方面。 #### ...
1. **配置Struts2 Action**:在`struts.xml`配置文件中,你需要定义一个Action,该Action负责处理文件上传请求。Action的类需要继承自`ActionSupport`,并覆盖`execute()`方法,以便处理上传的文件。 2. **设置...
本示例将详细介绍如何在Struts2框架下实现一个简单的文件上传功能。 1. **Struts2配置** 在开始文件上传之前,我们需要在`struts.xml`配置文件中声明一个Action,这个Action将处理文件上传请求。你需要定义一个...
在Struts框架中实现文件上传是一项常见的需求,它允许用户通过Web界面上传本地文件到服务器。文件上传功能在许多应用场景中都是必不可少的,如用户头像上传、文档分享等。 在Struts中实现文件上传主要涉及到以下几...
在 Struts 2 中实现文件上传,首先需要在 JSP 页面创建一个支持多部分数据的表单。例如,在 `FileUpload.jsp` 文件中,表单的 `method` 应设置为 `POST`,`enctype` 应设置为 `multipart/form-data`。此外,使用 `...
Struts2是一个强大的Java web框架,它为开发者提供了丰富的功能,包括处理用户表单提交、文件上传等。在本示例中,我们将深入探讨如何利用Struts2来实现单个和多个文件的上传功能。 首先,我们需要理解文件上传的...
在Struts2中,文件上传功能是一个常用特性,尤其在处理用户提交的多个文件时。本文将详细讲解如何使用Struts2进行多个文件的上传,重点是使用List集合进行上传。 首先,要实现Struts2的文件上传,必须引入必要的...