作者:wldandan 来源:www.matrix.org.cn 发布时间:2006-02-22 17:55:09.217
最近刚做完一个项目,用Struts1.1做的。从不懂,到熟练使用,都靠参考CSDN的一些文档。但是文章上讲的并不一定适合自己,所以我把我自己做的一些东西拿上来给大家看看,互相交流一下。如果您有跟好的方法,可以和我联系。
MSN:whw_dream (AT) hotmail.com
Struts的文件上传
本文用的是Struts1.1的org.apache.struts.upload.FormFile类。很方便,不用自己写。也不用写一个jsp调用jspsmartupload就可以搞定。
选择上传文件页面:selfile.jsp
--------------------------------------------------------------------------------
<%@ taglib uri="/WEB-INF/struts-html.tld" prefix="html"%>
<html:html>
<html:form action="/uploadsAction.do" enctype="multipart/form-data">
<html:file property="theFile"/>
<html:submit/>
</html:form>
</html:html>
--------------------------------------------------------------------------------
UpLoadAction.java
--------------------------------------------------------------------------------
import java.io.*;
import javax.servlet.http.*;
import org.apache.struts.action.*;
import org.apache.struts.upload.FormFile;
/**
* <p>Title:UpLoadAction</p>
* <p>Description: QRRSMMS </p>
* <p>Copyright: Copyright (c) 2004 jiahansoft</p>
* <p>Company: jiahansoft</p>
* @author wanghw
* @version 1.0
*/
public class UpLoadAction extends Action {
public ActionForward execute(ActionMapping mapping,
ActionForm form,
HttpServletRequest request,
HttpServletResponse response)
throws Exception {
if (form instanceof uploadsForm) {//如果form是uploadsForm
String encoding = request.getCharacterEncoding();
if ((encoding != null) && (encoding.equalsIgnoreCase("utf-8")))
{
response.setContentType("text/html; charset=gb2312");//如果没有指定编码,编码格式为gb2312
}
UpLoadForm theForm = (UpLoadForm ) form;
FormFile file = theForm.getTheFile();//取得上传的文件
try {
InputStream stream = file.getInputStream();//把文件读入
String filePath = request.getRealPath("/");//取当前系统路径
// filePath = request.getRealPath(request.getRequestURI()); //取当前系统路径
ByteArrayOutputStream baos = new ByteArrayOutputStream();
OutputStream bos = new FileOutputStream(filePath + "/" +
file.getFileName());//建立一个上传文件的输出流
//System.out.println(filePath+"/"+file.getFileName());
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(Exception e){
System.err.print(e);
}
//request.setAttribute("dat",file.getFileName());
return mapping.findForward("display");
}
return null;
}
}
--------------------------------------------------------------------------------
UpLoadForm.java
--------------------------------------------------------------------------------
import javax.servlet.http.HttpServletRequest;
import org.apache.struts.action.*;
import org.apache.struts.upload.*;
/**
* <p>Title:UpLoadForm</p>
* <p>Description: QRRSMMS </p>
* <p>Copyright: Copyright (c) 2004 jiahansoft</p>
* <p>Company: jiahansoft</p>
* @author wanghw
* @version 1.0
*/
public class UpLoadForm extends ActionForm {
public static final String ERROR_PROPERTY_MAX_LENGTH_EXCEEDED = "org.apache.struts.webapp.upload.MaxLengthExceeded";
protected FormFile theFile;
public FormFile getTheFile() {
return theFile;
}
public void setTheFile(FormFile theFile) {
this.theFile = theFile;
}
public ActionErrors validate(ActionMapping mapping, HttpServletRequest request)
{
ActionErrors errors = null;
//has the maximum length been exceeded?
Boolean maxLengthExceeded = (Boolean)
request.getAttribute(MultipartRequestHandler.ATTRIBUTE_MAX_LENGTH_EXCEEDED);
if ((maxLengthExceeded != null) && (maxLengthExceeded.booleanValue()))
{
errors = new ActionErrors();
errors.add(ERROR_PROPERTY_MAX_LENGTH_EXCEEDED, new ActionError("maxLengthExceeded"));
}
return errors;
}
}
//这是相对应的form,还有其他属性可以设置,具体可以参考struts的上传例子。
--------------------------------------------------------------------------------
struts-config.xml
--------------------------------------------------------------------------------
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE struts-config PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 1.1//EN" "http://jakarta.apache.org/struts/dtds/struts-config_1_1.dtd">
<struts-config>
<form-beans>
<form-bean name="uploadsForm" type="UpLoadForm" />
</form-beans>
<action-mappings>
<action name="uploadsForm" type="UpLoadAction" path="/uploadsAction">
<forward name="display" path="/display.jsp" />
</action>
</action-mappings>
</struts-config>
<!--display.jsp就是随便写一个成功页-->
分享到:
相关推荐
在这个"Struts文件上传示例"中,我们将深入探讨如何在Struts框架下实现文件上传功能,以及相关的关键知识点。 首先,理解文件上传的基本流程至关重要。在Web应用中,用户通过表单选择本地文件,然后提交到服务器。...
JavaEE Struts 文件上传是Web开发中的一个常见需求,它允许用户从客户端向服务器传输文件。Struts作为JavaEE框架的一部分,提供了强大的功能来处理这种交互。以下是对这个主题的详细解析。 首先,理解文件上传的...
Struts 提供了强大的支持来处理文件上传操作。下面将详细介绍Struts 实现文件上传的相关知识点。 ### 1. Struts 框架概述 Struts 是Apache软件基金会下的一个开源项目,其主要目标是提供一个可扩展且易于维护的...
本篇文章将详细探讨Struts文件上传大小限制的问题。 首先,我们需要理解文件上传的基本流程。在Struts中,当用户通过表单提交文件时,数据会被封装到`ActionForm`对象中,然后由Struts的控制器组件处理。默认情况下...
### Struts文件上传知识点 #### 一、Struts框架简介 Struts是一个开源的MVC(Model-View-Controller)框架,它简化了基于Java的Web应用程序开发过程。Struits框架提供了一种结构化的方式来组织代码,使得开发更加...
在本文中,我们将深入探讨如何使用JSP(JavaServer Pages)和Struts框架实现文件上传功能。这是一个在Web开发中常见的需求,特别是在处理用户提交的数据时。Struts是一个基于MVC(Model-View-Controller)设计模式的...
Apache Commons FileUpload库是Struts文件上传的核心,它提供了处理`multipart/form-data`请求的能力。你需要在项目中引入这个库,并在Action中使用`FileItemFactory`和`ServletFileUpload`来解析请求中的文件项。 ...
一、Struts文件上传大小限制的配置 1. **struts-default.xml配置** 在Struts2框架中,我们可以通过修改`struts-default.xml`或自定义的配置文件来设置文件上传的最大大小。在`<constant>`标签中,可以设置以下两个...
"Struts文件上传下载"是Struts框架中的一个重要功能,允许用户通过Web界面上传文件到服务器,同时也支持从服务器下载文件到用户的本地设备。在实际的业务场景中,例如在线文档共享、图片分享、文件管理等,文件上传...
Struts文件上传是Java Web开发中的一个重要功能,它允许用户通过Web界面上传文件到服务器。在Struts框架中实现文件上传,主要涉及到Struts的ActionForm、Servlet API以及相关的配置文件。下面将详细介绍Struts文件...
在本项目中,"Struts文件上传和Excel导出"涵盖了两个关键功能:文件上传和数据导出到Excel。这里我们将深入探讨这两个主题。 **文件上传** 1. **表单设计**:在HTML页面上,我们需要一个`<input type="file">`标签...
Struts文件上传是一个在Java Web开发中常见的功能,主要用于允许用户通过Web应用程序上传文件到服务器。Struts是Apache软件基金会的Jakarta项目中的一个开源框架,它基于Model-View-Controller(MVC)架构模式,旨在...
首先,我们来了解一下Struts文件上传的基本步骤: 1. **配置struts.xml**:在Struts配置文件中,你需要定义一个Action,这个Action将处理文件上传请求。通过`<action>`标签设置`executeResult`方法,以及与之关联的...
### Struts 文件上传下载程序详解 #### 一、概述 Struts 是一款开源的MVC框架,被广泛应用于Java Web应用程序开发中。本篇将基于一个具体的`struts`文件上传下载程序进行深入剖析,旨在帮助读者理解Struts在文件...
总结,Struts文件上传实例展示了如何在Java Web应用中使用Struts框架实现文件上传功能。这个过程涉及Struts配置、表单Bean、Action类以及服务器端的文件处理。理解和掌握这个实例,可以帮助开发者更好地应对实际项目...
这个"struts文件上传例子"很可能是展示如何在Struts应用中处理文件上传的一个示例项目。 首先,你需要在JSP页面上创建一个`<input type="file">`元素,让用户选择要上传的文件。然后,将该表单提交到一个对应的...
在这个"struts文件上传小项目"中,我们将探讨如何利用Struts框架实现文件上传功能,这是一个常见的Web应用程序需求。 首先,我们需要了解Struts的配置文件`struts-config.xml`。在这个项目中,它会定义一个或多个...