Struts上传文件<o:p></o:p>
开发环境:<o:p></o:p>
Eclipse3.2 、 MyEclipse5.0 、 Tomcat<st1:chsdate w:st="on" isrocdate="False" islunardate="False" day="30" month="12" year="1899">5.5.9</st1:chsdate><o:p></o:p>
步骤:<o:p></o:p>
新建工程 upload<o:p></o:p>
<o:p> </o:p> 添加 Struts 框架,使用 Struts1.2 版本<o:p></o:p>
<o:p> </o:p>新建 一个 jsp,action,ActionForm<o:p></o:p>
这里一定要注意版本的对应<o:p></o:p>
修改动态 From 的类型为 org.apache.struts.upload.FormFile<o:p></o:p>
<o:p> </o:p> <form-bean name="upfileForm" type="org.apache.struts.action.DynaActionForm"><o:p></o:p>
<form-property name="filedata" type="java.lang.String" /><o:p></o:p>
</form-bean><o:p></o:p>
改为
<form-property name="filedata" type="org.apache.struts.upload.FormFile" /><o:p></o:p>
<o:p> </o:p> 修改 upload.jsp 文件,在<Form> 中加入 enctype="multipart/form-data" ,提交使用二进制类型的文件<o:p></o:p> 修改文件第一行代码
<%@ page contentType="text/html;charset=UTF-8"%><o:p></o:p>
这里将使用 UTF-8 的编码格式<o:p></o:p>
<o:p> </o:p> 修改 upfileAction.java 文件,修改后的内容如下:<o:p></o:p>
java 代码
- package com.lyx.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.action.DynaActionForm;
- import org.apache.struts.upload.FormFile;
- public class UpfileAction extends Action {
-
- public ActionForward execute(
- ActionMapping mapping,
- ActionForm form,
- HttpServletRequest request,
- HttpServletResponse response) {
- DynaActionForm upfileForm = (DynaActionForm) form;
-
- String filename = upfileForm.getString("filename");
-
- System.out.println(filename);
- FormFile filedata = (FormFile) upfileForm.get("filedata");
-
- String filePath = request.getRealPath("/");
-
- try {
-
- InputStream stream = filedata.getInputStream();
-
- OutputStream bos = new FileOutputStream(filePath + "/" +
- filedata.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 (FileNotFoundException e) {
-
- e.printStackTrace();
- } catch (IOException e) {
-
- e.printStackTrace();
- }
-
- return mapping.getInputForward();
- }
-
- }
增加一个过滤器,过滤器的代码请查看包中的具体文件<o:p></o:p>
<o:p> </o:p> 在 web.xml 文件中加入以下配置内容,过滤器的编码设置为 UTF-8
xml 代码
- <filter>
- <filter-name>Set Character Encoding</filter-name>
- <filter-class>com.lyx.SetCharacterEncodingFilter</filter-class>
- <init-param>
- <param-name>encoding</param-name>
- <param-value>UTF-8</param-value>
- </init-param>
- </filter>
- <filter-mapping>
- <filter-name>Set Character Encoding</filter-name>
- <url-pattern>/*</url-pattern>
- </filter-mapping>
- <filter-mapping>
- <filter-name>Set Character Encoding</filter-name>
- <servlet-name>action</servlet-name>
- </filter-mapping>
<o:p></o:p>
分享到:
相关推荐
总之,"Struts上传详解附视频"这一主题覆盖了Struts2框架下实现文件上传的关键技术和实践技巧,对于想要学习或优化Java Web应用文件上传功能的开发者来说,是一个非常有价值的资源。通过学习这些内容,你可以更好地...
"张孝祥Struts视频源代码"很可能是由知名IT讲师张孝祥制作的一系列关于Struts框架的教程,其中包含了相应的源代码,帮助学习者通过实际操作理解Struts的工作原理和应用。 在深入探讨Struts框架之前,我们首先需要...
Struts2深入详解一书的源代码,Struts2深入详解
本资料包包含的是《Struts2深入详解》一书的源码分析,涵盖了从第一章到第五章的内容,并附带了相关的jar包,方便读者结合理论与实践进行学习。 首先,让我们从第一章开始,Struts2的基础知识。这一章通常会介绍...
至于提供的"ActionForm课堂代码",这部分内容可能包含了一些示例代码,比如ActionForm类的实现、JSP页面中标签的使用,以及struts-config.xml的配置等。通过这些代码,你可以更好地理解ActionForm的工作原理和标签的...
struts技术详解源码
struts技术详解源码2
- **Struts**:一个开放源代码的MVC框架,用于简化Java Web应用程序的开发。 - **版本**:Struts1为早期版本,被广泛应用于许多项目中。 **2.2 核心组件** - **ActionServlet**:总控制器,处理所有用户请求,并将...
本篇将深入探讨Struts1和Struts2的源代码,揭示其内部工作原理及核心组件。 **一、Struts1详解** 1. **架构概述**:Struts1基于Servlet API,通过FilterDispatcher拦截请求,将控制权交给ActionServlet。Action...
记得下载所有分块的rar文件(51CTO下载-传智播客struts2.1视频教程_源代码.part1.rar、51CTO下载-传智播客struts2.1视频教程_源代码.part3.rar、51CTO下载-传智播客struts2.1视频教程_源代码.part2.rar、51CTO下载-...
Struts是一个著名的开源MVC框架,它在Java Web开发中占据着重要的...此外,源码分析有助于开发者提高代码阅读能力,对框架的内部运作有更深入的认识。对于想要提升Java Web开发技能的人来说,这是一个极好的学习资源。
- **Action类详解**:Action类是Struts2的核心组件之一,负责处理用户的请求并返回相应的结果。了解如何编写Action类、设置其属性以及处理请求参数至关重要。 - **Result配置**:Result用于指定Action执行后的结果...
Struts2文件上传详解 在Java Web开发中,文件上传是一项常见的功能,Struts2作为一款流行的MVC框架,提供了完善的文件上传支持。本篇将深入讲解Struts2中的文件上传实现及其相关知识点。 首先,我们需要理解Struts...
### Struts框架详解 #### 一、Struts框架概述 Struts框架是一个开源的Java Web应用框架,基于Model-View-Controller(MVC)架构模式。该框架的主要优点在于其高度模块化的设计,具备良好的灵活性和重用性,极大地...
3. **配置文件**:`struts-config.xml`是Struts1.x的核心配置文件,用于定义Action、ActionForm、ActionForward等元素,以及数据源和国际化资源等。 二、ActionForm与数据绑定 1. **ActionForm**:ActionForm对象...
Struts2是一个强大的MVC(模型-视图-控制器)框架,它极大地简化了Java Web应用的开发。本文将深入探讨Struts2框架中的常用标签,这些标签在创建动态Web页面时发挥着至关重要的作用。 1. **s:form标签**: Struts2...
通过深入研究这个实例源码,你可以了解到Struts2中重定向的实际运用,以及如何根据需求选择合适的重定向策略。这不仅有助于提升你的编程技能,还能让你在解决实际问题时更加游刃有余。记住,实践是检验理论的最好...