- 浏览: 124459 次
- 性别:
- 来自: 深圳
文章分类
最新评论
本节主要介绍上传任意数据的文件、指定文件类型上传与Struts2的下载
1,首先改造upload.jsp,写了个JS事件,可以添加删除上传框。可以上传任意多(大于等于1)个文件!
<%@ page language="java" import="java.util.*" pageEncoding="gbk"%> <%@ taglib prefix="s" uri="/struts-tags"%> <html> <script type="text/javascript"> function addMore() { var td = document.getElementById("more"); var br = document.createElement("br"); var input = document.createElement("input"); var button = document.createElement("input"); input.type="file"; input.name="file"; button.type="button"; button.value="Remove"; button.onclick = function(){ td.removeChild(br); td.removeChild(input); td.removeChild(button); } td.appendChild(br); td.appendChild(input); td.appendChild(button); } </script> <body> <table> <tr><td> <s:fielderror cssStyle="color:red"/> </td></tr> </table> <s:form action="upload" theme="simple" enctype="multipart/form-data"> <table align="center" width="40%"> <tr> <td>username:</td> <td><s:textfield name="username"></s:textfield></td> </tr> <tr> <td>password:</td> <td><s:password name="password"></s:password></td> </tr> <tr> <td>file:</td> <td id="more"><!-- 定义一个id,方便javascript调用 --> <s:file name="file"></s:file> <input type="button" value="Add More..." onclick="addMore()"> </td> </tr> <tr> <td><s:submit></s:submit></td> <td><s:reset></s:reset></td> </tr> </table> </s:form> </body> </html>
2,UploadAction.java
package com.test.action; import java.io.File; import java.io.FileInputStream; import java.io.FileOutputStream; import java.io.InputStream; import java.io.OutputStream; import java.util.List; import org.apache.struts2.ServletActionContext; import com.opensymphony.xwork2.ActionSupport; public class UploadAction extends ActionSupport { private String username; private String password; private List<File> file; //下面两个变量是文件名与文件类型,Struts2会自动为以下两变量赋值 private List<String> fileFileName; private List<String> fileContentType; public String getUsername() { return username; } public void setUsername(String username) { this.username = username; } public String getPassword() { return password; } public void setPassword(String password) { this.password = password; } public List<File> getFile() { return file; } public void setFile(List<File> file) { this.file = file; } public List<String> getFileFileName() { return fileFileName; } public void setFileFileName(List<String> fileFileName) { this.fileFileName = fileFileName; } public List<String> getFileContentType() { return fileContentType; } public void setFileContentType(List<String> fileContentType) { this.fileContentType = fileContentType; } public String execute() throws Exception { for(int i = 0;i < file.size(); i++){ InputStream is = new FileInputStream(file.get(i)); String root = ServletActionContext.getRequest().getRealPath("upload"); File destFile = new File(root,this.getFileFileName().get(i)); OutputStream os = new FileOutputStream(destFile); byte[] buffer = new byte[400]; int length = 0; while((length= is.read(buffer)) > 0){ os.write(buffer, 0, length); } is.close(); os.close(); } return SUCCESS; } }
3,struts.xml
<action name="upload" class="com.test.action.UploadAction"> <result name="success">/uploadResult.jsp</result> <result name="input">/upload.jsp</result> <interceptor-ref name="fileUpload"> <!--指定上传文件大小,下面是400K--> <param name="maximumSize">409600</param> <!--指定上传文件类型,这里只允许上传PPT文件,文件类型名可以在Tomcat的conf\web.xml中查找--> <param name="allowedTypes">application/vnd.ms-powerpoint</param> </interceptor-ref><interceptor-ref name="defaultStack"></interceptor-ref> </action>
以上就完成了一个多文件,指定文件类型上传功能。
Struts2的下载实现
download.jsp
<%@ page language="java" import="java.util.*" pageEncoding="ISO-8859-1"%> <%@ taglib prefix="s" uri="/struts-tags"%> <html> <body> <s:a href="/struts2/download.action">downlaod</s:a> </body> </html>
DownloadAction.java
package com.test.action; import java.io.InputStream; import org.apache.struts2.ServletActionContext; import com.opensymphony.xwork2.ActionSupport; public class DownloadAction extends ActionSupport { public InputStream getDownloadFile(){ return ServletActionContext.getServletContext().getResourceAsStream("upload/11.ppt"); } public String execute() throws Exception { return SUCCESS; } }
struts.xml
<action name="download" class="com.test.action.DownloadAction"> <result name="success" type="stream"> <!--下载文件的类型--> <param name="contentType">application/vnd.ms-powerpoint</param> <!--指定下载文件的默认文件名--> <param name="contentDisposition">filename="Struts2.ppt"</param> <!--对应的getDownloadFile类中的getDownloadFile方法--> <param name="inputName">downloadFile</param> </result> </action>
发表评论
-
Struts2(18):Struts2深入探索续2
2011-06-06 03:15 624Struts2与Servlet是低耦合的,这可使项目不依赖于具 ... -
Struts2(17):Struts2深入探索续
2011-06-06 00:26 11611,struts2有属性驱动方式与模型驱动两种方式:之前的例子 ... -
Struts2(16): Struts2深入探索
2011-06-05 12:56 962先来看看struts2包中的一些配置文件: 1,strut ... -
Struts2(15):Struts2的国际化续
2011-06-04 23:38 945Struts2中action错误的国际化 在action类的 ... -
Struts2(14):Struts2的国际化
2011-06-04 02:44 918先看看JAVA的国际化实现:JAVA国际化是使用java.ut ... -
Struts2(12):Struts2的上传下载续
2011-05-29 12:40 951使用Struts2结束common的fileupload和io ... -
Struts2(11):Struts2的上传下载
2011-05-29 01:00 892首先来看看在JSP中上传是如何做的: 从upload.jsp ... -
Struts2(10):Struts2的监听器与验权小例
2011-05-28 18:27 3083Struts2的监听器: 在xwork-2.0.7.jar包 ... -
Struts2(7):Struts2的输入校验框架(xml配置文件校验)
2011-05-22 22:00 3004上一节使用了Action类中的validate方法进行校验,此 ... -
Struts2(6):Struts2的输入校验2
2011-05-22 18:13 1115遇到类型转换错误的时候(也就是说不能进行类型转换),strut ... -
Struts2(5):Struts2的输入校验
2011-05-22 16:23 11571,Register.jsp,一个注册页面,包括用户名,密码, ... -
Struts2(4):Struts2类型转换2
2011-05-22 12:35 11011,修改上一节的input.jsp文件 <s:form ... -
Strtus2(3):struts2的类型转换
2011-05-21 23:34 10421,新建一个Point类,包含两个变量x,y。只有set,ge ... -
Struts2(2):Struts2的输入检验
2011-05-21 12:44 9801:新建一个login2.jsp,使用Struts2的标签编写 ... -
Struts2(1):入门与配置
2011-05-21 11:51 5891,在MyEclipse中新建一个WEB工程:struts2d ... -
Struts2(9):开发自己的Struts2拦截器(编码与配置)
2011-05-15 21:16 1555要开发自己的Struts2拦截器类,需要实现Inte ... -
Struts2(8):拦截器的简单实现原理
2011-05-15 18:29 898什么是拦截器: 拦截器,在AOP(Aspect-Oriente ...
相关推荐
本篇文章将详细探讨如何在Struts2框架下实现文件的上传与下载。 首先,我们需要了解Struts2中的文件上传机制。Struts2提供了`FileUploadInterceptor`拦截器来处理文件上传请求。在处理文件上传时,开发者需要在...
3. 配置Struts2:在struts.xml配置文件中,配置文件上传拦截器(`struts.multipart.parser`),如`org.apache.struts2.dispatcher.multipart.JakartaMultiPartParser`。 4. 编写Action:创建一个Action类,使用`@...
2. Struts2中的文件上传:Struts2提供了更简洁的文件上传方式。在JSP页面中,可以使用`<s:file>`标签来创建文件选择控件。在Action类中,使用`@SkipValidation`注解标记文件上传方法,然后定义对应的`java.io.File`...
1. **.struts2配置**:在Struts2框架中,需要在`struts.xml`配置文件中添加相应的action配置,声明文件上传的处理方法。通常,你需要设置`<result>`类型为`stream`,以便处理上传的文件。 2. **Action类**:创建一...
文件上传和下载是Web应用程序中的常见需求,Struts2提供了完善的机制来处理这些功能。在"Struts2文件动态上传和动态下载(可自动生成下载内容)"这个项目中,J-CN工作室提供了一个完整的MyEclipse工程源码,使得开发者...
在这个"struts2上传下载"项目中,重点是实现文件和图像的上传与下载功能,这对于许多Web应用来说是一个常见的需求,如社交媒体、文档管理或者个人云存储服务。 1. **Struts2框架详解** - **MVC架构**:Struts2的...
综上,结合Struts2和SWFUpload,开发者能够构建出高效、安全的文件上传下载功能,提供良好的用户体验。在实际开发中,需要注意文件上传的安全性和性能优化,确保系统的稳定性和用户的数据安全。
教程名称:浪曦Struts2系列视频教程课程目录:【】1 Struts2入门与配置【】10 Struts2的核心 拦截器【】11 Struts2的核心 拦截器续【】12 Struts2的文件上传和下载【】13 Struts2的文件上传和下载续【】14 Struts2的...
### Struts2 文件上传与下载实现详解 #### 一、简介 在Web开发中,文件的上传和下载是非常常见的需求之一。Struts2框架作为Java Web开发中的一个重要框架,提供了非常方便的方式来处理这类操作。本文将详细介绍如何...
在这个"struts2+hibernate做的上传和下载文件例子"中,我们将深入探讨如何利用这些技术来实现文件的上传和下载功能。 1. **文件上传** - Struts2提供了内置的文件上传支持,通过`<s:file>`标签可以创建一个文件...
在Struts2中,文件上传和下载是常见的功能需求,主要用于处理用户通过表单提交的文件,或者允许用户从服务器下载文件。这些功能极大地增强了Web应用的交互性和实用性。 在Struts2中实现文件上传,主要涉及到以下几...
Struts2作为一款流行的Java Web框架,提供了丰富的功能来处理用户请求,包括文件上传。在Struts2中实现文件上传并展示进度条是一项常见的需求,它能提升用户体验,尤其是在处理大文件时。以下将详细解释如何在Struts...
Struts2是一个强大的Java web框架,它为开发者提供了一种优雅的方式来组织和构建应用程序,同时支持文件上传和下载功能。在Struts2中,文件上传和下载是通过Action类、拦截器以及配置文件来实现的。以下是关于Struts...
在本篇“Struts2学习笔记十三”中,我们将深入探讨Struts2如何处理文件上传和下载,这是Web开发中常见的需求。 文件上传在Web应用中广泛用于让用户提交图片、文档或其他类型的数据。Struts2提供了一个名为`...
5. **断点续传**:虽然Struts2本身不直接支持断点续传,但可以通过自定义拦截器或服务端逻辑实现这一功能,通过跟踪用户下载进度来提供中断和恢复下载的能力。 6. **安全性**:确保只允许授权用户访问可下载的文件...
在Struts2中处理文件上传是一项常见的需求,而Goouploader插件就是专门为了简化这一过程而设计的。Goouploader插件允许用户在Web表单中选择多个文件进行同时上传,极大地提高了用户体验。 在Struts2中,传统的文件...
在Struts2中,文件上传和下载是常见的功能,对于用户交互和数据交换至关重要。以下是对这一主题的详细阐述。 1. **文件上传** - **MultipartResolver**: 在处理文件上传时,Struts2首先需要一个MultipartResolver...
这个例子展示了如何使用Struts2和Hibernate这两个流行的开源框架来实现文件上传。Struts2是一个强大的MVC(Model-View-Controller)框架,而Hibernate则是一个优秀的对象关系映射(ORM)工具,用于简化数据库操作。 ...
Struts2是一个非常著名的Java Web开发框架,它基于MVC(Model-View-Controller)设计模式,用于构建高效、可扩展且易于维护的企业级应用程序。Struts2的2.38版是其官方发布的最新版本,针对之前版本进行了优化和更新...
在本篇“Struts2学习笔记十四”中,我们将深入探讨Struts2框架如何实现文件上传和下载功能,这是web应用中常见的需求,尤其在处理用户提交的表单数据时。我们将不涉及具体代码,而是重点讲解相关概念和技术原理。 ...