1、在服务器端提供一个文件夹存放提交的文件,upload文件夹,位于WebRoot下面
2.在upload.jsp页面
<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%> <%@taglib uri="/struts-tags" prefix="s" %> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <head> <title>文件上传</title> </head> <body> <center> <h1>文件上传</h1> <form action="upload.action" method="post" enctype="multipart/form-data"> 文件上传:<input type="file" name="pic"/><br> <input type="submit" value="Submit"/> </form> </center> </body> </html>
3.写一个Action类,FileUploadAction extends ActionSupport
package com.jsu.struts2.action; import java.io.File; import java.io.FileInputStream; import java.io.FileOutputStream; import javax.servlet.ServletContext; import javax.servlet.http.HttpServletRequest; import org.apache.struts2.interceptor.ServletRequestAware; import com.opensymphony.xwork2.ActionSupport; public class FileUploadAction extends ActionSupport implements ServletRequestAware { private File pic;// 提交的数据类型是文件 /* * Struts2.0框架中获得上传文件的名称 在页面中如果定义了 <file name="xxx"/> 文件名称的属性必须定义成 * xxxFileName */ private String picFileName; /* 文件的类型 */ private String picContentType; private HttpServletRequest request; public String execute() throws Exception { System.out.println("File===" + pic); System.out.println("文件名称====" + picFileName); System.out.println("文件类型====" + picContentType); // File 获得是临时文件 FileInputStream io = new FileInputStream(pic); // 文件路径问题 /* ServletContext由逻辑路径获得物理路径 */ ServletContext ctx=request.getSession().getServletContext(); String path=ctx.getRealPath("/upload");//由逻辑路径获得绝对路径 FileOutputStream out = new FileOutputStream(path+"\\"+picFileName); byte[] b = new byte[1024];// 1k int len = 0; while (true) { len = io.read(b); if (len < 0) break; out.write(b, 0, len); } out.close(); io.close(); return SUCCESS; } public File getPic() { return pic; } public void setPic(File pic) { this.pic = pic; } public String getPicFileName() { return picFileName; } public void setPicFileName(String picFileName) { this.picFileName = picFileName; } public String getPicContentType() { return picContentType; } public void setPicContentType(String picContentType) { this.picContentType = picContentType; } public void setServletRequest(HttpServletRequest request) { this.request = request; } }
4.error.jsp页面
<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%> <%@taglib uri="/struts-tags" prefix="s"%> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <head> </head> <body> Error: <s:fielderror></s:fielderror> </body> </html>
5.在struts.xml中配置
<struts> <constant name="struts.custom.i18n.resources" value="myRes"/> <package name="loginDemo" namespace="/" extends="struts-default"> <!-- 文件的上传 --> <action name="upload" class="com.jsu.struts2.action.FileUpAction"> <!-- 使用Struts2.0 fileUpload拦截器限定文件的大小和类型 --> <interceptor-ref name="fileUpload"> <!-- 文件的最大值 --> <param name="maximumSize">2048000</param> <!-- 设置文件上传的类型 IE消息头解析图片为pjpeg,所以加为pjpeg--> <param name="allowedTypes">image/jpeg,image/gif,image/pjpeg</param> </interceptor-ref> <interceptor-ref name="defaultStack"/> <result>/upload.jsp</result> <result name="input">/error.jsp</result> </action> </package> </struts>
6.在 src 提供 struts.properties 配置文件 一般在 strusts 核心 jar 包里面的 defalut.xml 文件中找
struts.multipart.saveDir=
struts.multipart.maxSize= 2097152
struts.properties 文件中的内容
#修改临时文件存放的路径,如果该目录不存在则创建 struts.multipart.saveDir=D:\\temp #全局限定文件的大小,默认为2M struts.multipart.maxSize=2097152
7.修改文件上传异常的错误信息
1. 在 src 中创建资源文件
2. 在 myRes.properties
3. 在 struts-default.xml 文件中找或者在 java 代码中查看源码
//上传文件太大 struts.messages.error.file.too.large=\u4E0A\u4F20\u7684\u6587\u4EF6\u592A\u5927 //上传的文件类型不允许 struts.messages.error.content.type.not.allowed=\u53EA\u80FD\u4E0A\u4F20\u56FE\u7247
发表评论
-
struts2day06 自定义结果
2012-07-16 12:14 673类implements Result接口 或者 extends ... -
struts2day06 Struts2.0的result
2012-07-16 12:01 950Struts2.0的result Action ... -
struts2day06学习笔记
2012-07-16 10:55 8521.new String(xxx.getBytes(),&qu ... -
struts2day05异常处理
2012-07-13 23:13 834Struts2.0的异常处理机制 1.什么是异常?软件在 ... -
Struts2day05学习笔记
2012-07-13 22:19 6761.自定义拦截器 1.im ... -
Struts2day04Struts2.0文件的下载
2012-07-13 08:26 6781.写一个Action,在DownloadAction ext ... -
Struts2day04Struts2.0实现阻止表单重复提交
2012-07-12 21:01 6251.使用叫做token的拦截器,在表单中加入<s:tok ... -
Struts2day04对Action的方法进行过滤拦截
2012-07-12 20:38 17821.写一个Action类 UserManagerAction ... -
Struts2day04判断用户是否登录
2012-07-12 19:37 8701.在拦截器中获得用户登录的session 在LoginC ... -
Struts2day04测试程序的执行效率,拦截器栈,在Action中覆盖拦截器的属性值
2012-07-12 18:58 11861.在LoginAction.java中,extends Ac ... -
Struts2学习笔记day04
2012-07-12 00:31 6201.自定义类型转换 1.写一个类 extends S ... -
Struts2day03Struts2.0提供的数据格式校验
2012-07-11 21:52 718Struts2.0提供的数据格式校验 js校验:存在被 ... -
Struts2day03Struts2.0国际化
2012-07-11 21:09 766Struts2.0国际化 B/S结构中为网页提供多国 ... -
Struts2day03OGNL自定义类型转换
2012-07-11 20:47 806Struts2.0框架不能够或者不能完整的进行自动类型转换 ... -
Struts2学习笔记day03
2012-07-11 19:09 9481.值栈:ValueStack,存储数 ... -
Struts2day02多个对象提交
2012-07-10 07:15 1189在listUser.jsp页面 <%@ page la ... -
Struts2day02表单标签
2012-07-10 07:15 6671.在struts2Form.jsp中 <%@ ... -
struts2day02访问ValueStack中的数据以及访问Context中的对象
2012-07-10 07:14 10471.在show.jsp页面 <%@ page lang ... -
Struts2day02动态方法调用
2012-07-10 07:14 6541.在opt.jsp页面 <%@ page langu ... -
Struts2day02使用通配符调用指定的方法
2012-07-10 07:14 7311.在opt.jsp页面 <%@ page langu ...
相关推荐
JavaEE源代码 Struts2.0JavaEE源代码 Struts2.0JavaEE源代码 Struts2.0JavaEE源代码 Struts2.0JavaEE源代码 Struts2.0JavaEE源代码 Struts2.0JavaEE源代码 Struts2.0JavaEE源代码 Struts2.0JavaEE源代码 Struts2.0...
在开始开发Struts 2应用之前,首先需要从Apache官方网站下载Struts 2的发行包,通常推荐下载all包,因为它包含了所有必要的文档、源码、实例和库文件。解压后,可以参考提供的示例程序进行学习,例如`struts2-blank-...
3. **第一个Struts2应用**:通过创建一个简单的Hello World示例,演示Struts2的配置文件(struts.xml)、Action类、结果视图和JSP页面的编写。 4. **Struts2的MVC模式**:详细解释模型、视图和控制器在Struts2中的...
4. **版本信息**: 提供的压缩包版本为2.0.11.2,这个版本是在Struts2框架早期的一个稳定版。尽管较新的版本可能包含更多的特性与安全改进,但研究旧版本有助于理解框架的发展历程和基本工作原理。 在深入学习Struts...
struts-2.0 jarstruts-2.0 jarstruts-2.0 jarstruts-2.0 jar
《Struts2.0中文帮助手册.chm》将详细介绍Struts2的API、配置和使用技巧,而《Struts1.2.pdf》则可能包含了Struts1.x的框架原理、开发流程以及案例分析。通过学习这两本书,开发者可以深入理解这两个版本的Struts...
2. **配置文件**:struts.xml是Struts2的配置中心,定义了Action的映射、结果类型、拦截器链等。例如: ```xml <result name="success">/success.jsp <result name="error">/error.jsp ``` 3. **OGNL**:...
struts-2.0 jarstruts-2.0 jarstruts-2.0 jarstruts-2.0 jar
01 为Struts 2.0做好准备 02 常用的Struts 2.0的标志(Tag) 03 Struts 2.0的Action讲解...09 在Struts 2中实现文件上传 10 在Struts 2中实现CRUD 11 Struts 2中的OGNL 12 trus 2的新表单标志的使用 13 Struts 2与AJAX
以下是对Struts2.0文件上传原理的详细解释: 1. **HTTP协议与表单提交** 在HTML表单中,如果需要上传文件,`<form>`标签必须包含`enctype="multipart/form-data"`属性。这是因为普通POST请求无法处理二进制数据,...
Struts 2.0系列(MAX),pdf格式,全方位介绍struts2: 常用的Struts 2.0的标志(Tag)介绍 ...在Struts 2中实现文件上传 在Struts 2中实现CRUD Struts 2中的OGNL Strus 2的新表单标志的使用 Struts 2与AJAX
传智2016框架视频配套讲义----struts2_day04讲义.pdf ,需要的下载了
这个“Struts2.0 Jar包”包含了所有必要的库文件,使得开发者可以便捷地进行Struts2.0的开发工作。 1. **Struts2框架基础**: Struts2是Apache软件基金会的一个开源项目,它是Struts1.x的升级版本,引入了许多改进...
《精通Struts 2:Web 2.0开发实战》这本书是Java Web开发领域的一本经典教程,专注于Struts 2框架的应用与实践。Struts 2作为一款强大的MVC(Model-View-Controller)框架,是Java EE平台上的重要组成部分,它极大地...
Struts2.0文件上传是Java Web开发中的一个重要实践,它允许用户在Web应用程序中上传文件,例如图片、文档或音频文件。这个实例是针对初学者设计的,可以帮助理解并实现这一功能。以下是对Struts2.0文件上传机制及其...
Struts2-Spring-Plugin-2.0.11.1.jar 是一个专门为Apache Struts2框架设计的插件,其主要目的是实现Struts2与Spring框架的集成。这个插件使得开发者能够在Struts2应用中无缝地使用Spring进行依赖注入(Dependency ...
Struts 2.0的配置信息可以分布在多个XML文件中,如struts.xml、package.xml等。这些文件定义了Action、Action映射、结果类型、拦截器等元素。配置文件支持动态配置,使得配置更加灵活。 5. **拦截器(Interceptors...
3. **上传与下载功能**:Struts2提供了一套完整的文件上传和下载机制。在Action中,可以使用`@Params`注解或`File`、`FileName`、`ContentType`参数来处理文件上传。对于文件下载,可以通过设置HTTP响应头信息,如...
struts2-core-2.0.11.2.jar