- 浏览: 397043 次
- 性别:
- 来自: 北京
文章分类
最新评论
upload.html
succ.jsp
web.xml
struts.xml
UploadAction
拦截器实现文件过滤
struts.xml
指定国际化资源文件
使用解码集
拦截器
允许上传文件
上传文件大小
动态ACTION属性
必须配置input视图
<html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=GBK" /> <title>简单的文件上传</title> </head> <body> <form action="upload.action" method="post" enctype="multipart/form-data"> 文件标题:<input type="text" name="title" /><br>
选择文件:<input type="file" name="upload" /><br>
<input value="上传" type="submit" />
</form>
</body>
</html>
succ.jsp
<%@ page language="java" contentType="text/html; charset=GBK"%> <%@taglib prefix="s" uri="/struts-tags"%> <html> <head> <title>上传成功</title> </head> <body> 上传成功!<br> 文件标题:<s:property value=" + title"/><br> 文件为:<img src="<s:property value="'upload/' + uploadFileName"/>"/><br> </body> </html>
web.xml
<?xml version="1.0" encoding="UTF-8"?> <web-app id="WebApp_9" version="2.4" xmlns="http://java.sun.com/xml/ns/j2ee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd"> <filter> <filter-name>struts</filter-name> <filter-class>org.apache.struts2.dispatcher.FilterDispatcher</filter-class> </filter> <filter-mapping> <filter-name>struts</filter-name> <url-pattern>/*</url-pattern> </filter-mapping> <filter> <filter-name>struts-cleanup</filter-name> <filter-class>org.apache.struts2.dispatcher.ActionContextCleanUp</filter-class> </filter> <filter-mapping> <filter-name>struts-cleanup</filter-name> <url-pattern>/*</url-pattern> </filter-mapping> </web-app>
struts.xml
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN" "http://struts.apache.org/dtds/struts-2.0.dtd"> <struts> <constant name="struts.custom.i18n.resources" value="globalMessages"/> <constant name="struts.i18n.encoding" value="GBK"/> <package name="lee" extends="struts-default"> <action name="upload" class="lee.UploadAction"> <param name="savePath">/upload</param> <result>/succ.jsp</result> </action> </package> </struts>
UploadAction
// Decompiled by Jad v1.5.8e2. Copyright 2001 Pavel Kouznetsov. // Jad home page: http://kpdus.tripod.com/jad.html // Decompiler options: packimports(3) fieldsfirst ansi space // Source File Name: UploadAction.java package lee; import com.opensymphony.xwork2.ActionSupport; import java.io.*; import javax.servlet.http.HttpServletRequest; import org.apache.struts2.ServletActionContext; public class UploadAction extends ActionSupport { private String title; private File upload; private String uploadContentType; private String uploadFileName; private String savePath; public UploadAction() { } public void setSavePath(String value) { savePath = value; } private String getSavePath() throws Exception { return ServletActionContext.getRequest().getRealPath(savePath); } public void setTitle(String title) { this.title = title; } public void setUpload(File upload) { this.upload = upload; } public void setUploadContentType(String uploadContentType) { this.uploadContentType = uploadContentType; } public void setUploadFileName(String uploadFileName) { this.uploadFileName = uploadFileName; } public String getTitle() { return title; } public File getUpload() { return upload; } public String getUploadContentType() { return uploadContentType; } public String getUploadFileName() { return uploadFileName; } public String execute() throws Exception { System.out.println("开始上传单个文件-----------------------"); System.out.println(getSavePath()); System.out.println((new StringBuilder()).append("==========").append(getUploadFileName()).toString()); System.out.println((new StringBuilder()).append("==========").append(getUploadContentType()).toString()); System.out.println((new StringBuilder()).append("==========").append(getUpload()).toString()); FileOutputStream fos = new FileOutputStream((new StringBuilder()).append(getSavePath()).append("\\").append(getUploadFileName()).toString()); FileInputStream fis = new FileInputStream(getUpload()); byte buffer[] = new byte[1024]; for (int len = 0; (len = fis.read(buffer)) > 0;) fos.write(buffer, 0, len); return "success"; } }
拦截器实现文件过滤
struts.xml
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN" "http://struts.apache.org/dtds/struts-2.0.dtd"> <struts>
指定国际化资源文件
<constant name="struts.custom.i18n.resources" value="globalMessages"/>
使用解码集
<constant name="struts.i18n.encoding" value="GBK"/> <package name="upload" extends="struts-default"> <action name="upload" class="lee.UploadAction">
拦截器
<interceptor-ref name="fileUpload">
允许上传文件
<param name="allowedTypes">image/bmp,image/png,image/gif,image/jpeg</param>
上传文件大小
<param name="maximumSize">2000</param> </interceptor-ref> <interceptor-ref name="defaultStack"/>
动态ACTION属性
<param name="savePath">/upload</param>
必须配置input视图
<result name="input"> /upload.jsp</result> <result>/succ.jsp</result> </action> </package> </struts>
发表评论
-
spring 指定时间执行定时器
2011-02-17 13:27 1828<!-- 定时执行 开始 --> <bean ... -
Apache2.2 + tomcat5.5 集群以及负载均衡配置测试
2010-04-17 23:56 1347今天晚上没啥事,调试了一下Apache与tomcat负载均衡的 ... -
硅谷归来谈Java
2009-11-15 23:11 1200原文由 JLang 所发表 国内不谈java--会有千万人 ... -
Struts2拦截器(Interceptor)
2009-10-27 15:20 31101. 理解拦截器 1.1. 什么是拦截器: 拦截器 ... -
Struts2: 动态重新加载配置文件(Reloading Configuration)
2009-10-19 23:38 1768struts2允许动态加载xml配置文件,例如 actions ... -
动态加载 bean 到Spring Context
2009-10-19 23:29 1856动态Bean的实现类 import java.io.IOE ... -
网站静态化的第一部分,百万帖子页面
2009-08-11 12:09 1003不知道因为什么原因, ... -
Hibernate中Criteria的完整用法
2009-07-31 13:39 806最近在项目中使用 Spring 和 Hibernate 进行开 ... -
提升JSP应用程序的七大绝招
2009-07-25 12:03 891你时常被客户抱怨JSP页面响应速度很慢吗?你想过当客户访问次数 ... -
如何加大eclipse中console的显示行数
2009-07-25 10:37 2261http://www.javaworld.com.tw/jut ... -
戏说java web开发中的listener和filter
2009-07-24 15:47 1355今天在公司看到有同事在写filter,晚上一个人在家无聊,就想 ... -
浅谈Hibernate的flush机制
2009-07-12 12:37 1237【转自】http://hi.baidu.com ... -
JDK5.0中注释(Annotation)的用法
2009-07-12 11:43 1747很多api都需要相当数量 ... -
JDK 5.0 注释 示例
2009-07-12 11:23 21251. 利用注释和反射 实现程序的方法按顺序执行 Or ... -
JSTL中<c:forEach>的用法
2009-07-11 23:26 2602[转自]http://baike.baidu.com/view ... -
JSTL详解
2009-07-11 23:13 1200[转自]http://city-moon.iteye.com/ ...
相关推荐
在Struts2中,文件上传和下载是常见的功能需求,特别是在处理用户交互和数据交换时。这篇博客文章提供的"struts2文件上传下载源代码"旨在帮助开发者理解和实现这些功能。 文件上传功能允许用户从他们的设备上传文件...
Struts2 文件上传是Web开发中的一个重要功能,它允许用户通过网页上传文件到服务器。Struts2 是一个基于MVC(Model-View-Controller)设计模式的Java Web框架,提供了丰富的特性和强大的控制层功能,使得文件上传...
这个压缩包包含了实现Struts2文件上传所需的全部jar包,这些库文件对于理解和实现文件上传功能至关重要。 首先,我们要了解Struts2文件上传的基本流程。当用户通过表单提交包含文件输入字段的请求时,Struts2框架会...
在Struts2中,文件上传功能是一个常见的需求,例如用户可能需要上传图片、文档或其他类型的文件。本教程将深入浅出地讲解如何在Struts2中实现文件上传,并提供一个简单的实例来帮助理解。 1. **Struts2文件上传概述...
Struts2文件上传是Web开发中常见的功能,用于允许用户在网页上选择并上传本地文件到服务器。在Java Web环境中,Struts2框架提供了一套完整的解决方案来处理文件上传请求。下面将详细介绍Struts2文件上传的核心概念、...
在Struts 2中,文件上传功能是通过使用Struts 2的插件机制来实现的,这使得开发者能够方便地处理用户上传的文件。下面将详细讨论Struts 2文件上传的相关知识点。 ### 1. Struts 2文件上传原理 文件上传是基于HTTP...
"Struts2文件上传带进度条页面无刷新"的实现涉及多个技术点,包括Struts2的文件上传插件、AJAX异步通信以及前端进度条展示。 首先,Struts2的文件上传依赖于`struts2-upload-plugin`。这个插件扩展了Struts2的核心...
在这个"Struts2之struts2文件上传详解案例struts011"中,我们将深入探讨如何实现这一功能。 首先,我们需要了解Struts2中的Action类,它是处理用户请求的核心组件。为了支持文件上传,我们需要创建一个继承自`org....