<%@ taglib uri="/WEB-INF/struts-html.tld" prefix="html"%>
<html:html>
<html:form action="/myAction.do" enctype="multipart/form-data">
<html:file property="theFile"/>
<html:submit/>
</html:form>
</html:html>
package com.j2ee.zz.action;
import org.apache.struts.action.*;
import javax.servlet.http.*;
import com.j2ee.zz.actionform.*;
import org.apache.struts.upload.*;
import java.io.*;
public class myAction extends Action {
public ActionForward perform(ActionMapping actionMapping, ActionForm actionForm, HttpServletRequest request, HttpServletResponse response) {
/**@todo: complete the business logic here, this is just a skeleton.*/
myActionForm myActionForm = (myActionForm) actionForm;
if(actionForm instanceof myActionForm){
String encoding = request.getCharacterEncoding();
if(encoding != null && encoding.equalsIgnoreCase("UTF-8")){
response.setContentType("text/html; charset=gb2312");
}
FormFile file = myActionForm.getTheFile();
try{
InputStream input = file.getInputStream();
String path = request.getRealPath("/");
ByteArrayOutputStream baos = new ByteArrayOutputStream();
OutputStream out = new FileOutputStream(path+"/"+file.getFileName());
System.out.println(path+"/"+file.getFileName());
int i = 0;
byte[] buff = new byte[8192];
while((i = input.read(buff, 0, 8192)) != -1){
out.write(buff,0,i);
}
out.close();
input.close();
}catch(Exception ex){
System.out.println(ex.getMessage());
}
return actionMapping.findForward("succ");
}
return null;
}
}
package com.j2ee.zz.actionform;
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 myActionForm 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;
}
}
分享到:
相关推荐
在Struts中,可以实现单文件和多文件的上传,并且为了提升用户体验,我们还可以添加进度条来显示文件上传的状态。本文将详细介绍如何在Struts中实现这两个功能,并带上传进度条。 首先,我们需要了解Struts中处理...
### Struts1 文件上传知识点详解 #### 一、概述 在Web开发中,文件上传是一项常见功能。Apache Struts框架提供了强大的支持来进行文件上传。本文将详细介绍如何在Struts1中实现单文件上传和多文件上传,并探讨如何...
### Struts1 实现文件上传的关键技术点 在Struts1框架中实现文件上传功能是一项常见但又具有一定技术挑战的任务。下面将详细解析文件上传的实现过程,包括关键类的使用、文件处理逻辑以及异常处理等方面。 #### ...
基于Struts文件上传(FormFile)详解 Struts是一个基于Java的Web应用程序框架,提供了许多有用的功能来简化Web开发过程。其中,文件上传是Struts中一个非常重要的功能。本文将详细介绍基于Struts文件上传的实现方法,...
在Struts框架中,`FormFile`类是用于处理文件上传的一个关键组件,特别是对于单个或批量上传图片的情况。本篇文章将详细探讨如何使用Struts的`FormFile`来实现批量上传图片的功能。 ### 1. FormFile概述 `FormFile`...
在这个“Struts1实现的文件上传”项目中,我们将深入探讨如何在Struts1框架下实现文件上传功能,并不涉及文件下载的部分。 首先,理解文件上传的基本流程是至关重要的。在Web应用中,用户通过HTML表单选择本地文件...
Struts1使用了`org.apache.struts.upload.FormFile`类来处理文件上传。当用户提交包含文件的表单时,服务器端的ActionForm会接收到这个FormFile对象,通过它获取到文件的内容和元数据。然而,原生的Struts1并不支持...
Struts 提供了强大的支持来处理文件上传操作。下面将详细介绍Struts 实现文件上传的相关知识点。 ### 1. Struts 框架概述 Struts 是Apache软件基金会下的一个开源项目,其主要目标是提供一个可扩展且易于维护的...
本文将深入探讨Struts1中的文件上传,包括单文件上传、多文件上传,以及解决文件名乱码和重名冲突等问题。 1. **文件上传基础** 文件上传是Web应用中常见的一种功能,允许用户从本地电脑上传文件到服务器。在...
在Struts2框架中实现文件上传和下载功能,是Web开发中常见的需求。Struts2作为一个成熟的MVC框架,提供了简单的API和标记库来处理文件上传下载的业务逻辑。下面是基于给定文件内容的知识点详细说明。 ### Struts2...
在使用Struts处理文件上传时,有时可能会遇到附件上传速度缓慢的问题。这个问题通常不是由于Struts框架本身引起的,而是与浏览器、网络环境以及服务器配置有关。特别是对于使用IE6的用户,由于其上传机制的限制,...
在这个"struts1文件上传的例子"中,我们将深入探讨如何在Struts1框架下实现文件上传的功能。 首先,文件上传在Web开发中是一个常见的需求,例如用户可能需要上传图片、文档或其他类型的文件。在Struts1中,这通常...
在Struts1.2框架中,FormFile是用于处理文件上传的一个关键组件,尤其是在实现批量上传功能时。本文将深入探讨如何使用FormFile在Struts1.2中实现实现批量文件上传,以及相关的技术要点。 一、Struts1.2简介 Struts...
在本"基于Struts的文件上传下载源代码"中,我们可以深入理解Struts如何处理文件上传和下载操作,这对于初学者来说是一个非常实用的学习资源。 首先,文件上传在Web应用中是常见的功能,它允许用户从本地计算机选择...
在Struts1.2版本中,实现多文件上传是一项常见的需求,它允许用户在一次提交中上传多个文件,这对于数据交互、资源分享等场景非常实用。在本教程中,我们将深入探讨如何在Struts1.2中实现这一功能。 首先,理解多...
在本文中,我们将深入探讨如何使用JSP(JavaServer Pages)和Struts框架实现文件上传功能。这是一个在Web开发中常见的需求,特别是在处理用户提交的数据时。Struts是一个基于MVC(Model-View-Controller)设计模式的...
在Struts1中实现文件上传,我们需要考虑前端的HTML表单、ActionForm、Struts配置文件以及后台的Action处理。 首先,前端实现是通过一个支持多文件选择的HTML表单来完成的。表单需要设置`enctype="multipart/form-...
在Struts1中,文件上传主要通过`org.apache.struts.upload.FormFile`类来完成。在给定的代码片段中,`FileAction`类继承自`DispatchAction`,这是Struts1中用于处理不同请求的基类。`upLoadFile`方法是处理文件上传...
在处理文件上传时,Struts1提供了相应的支持,但默认情况下,它只能处理单个文件的上传。要实现多个文件的同时上传,我们需要利用一些额外的工具或库来扩展Struts1的功能。 在描述中提到的"jquery multi"可能是指...