- 浏览: 992896 次
- 性别:
- 来自: 上海
文章分类
- 全部博客 (223)
- JDBC技术 (29)
- Java Base (21)
- SSH框架的集合 (5)
- Javascript部分 (16)
- Sping2.5框架 (6)
- Hibernate框架 (19)
- JDBC中的数据库连接 (5)
- Ajax技术应用 (9)
- Java工具包下载 (3)
- Database (4)
- Java Web (13)
- 我的生活 (4)
- Struts2 (25)
- S2SH (1)
- Prototype (1)
- jfreeChart (5)
- JPA (7)
- JBPM (1)
- JasperReport (6)
- DWR (1)
- freeMark (2)
- IBatis (2)
- FCKeditor (2)
- POI (1)
- JQuery (6)
- JSON (1)
- JavaMail (3)
- Flex (2)
- CSS收藏夹 (1)
- 润乾报表 (2)
- 开源技术 (1)
- Android (2)
- Android_UI (1)
- Android_OS (6)
- Android_OpenLibs (3)
- Volley (1)
- JS_OpenLibs (1)
- Hessian (3)
- OS (1)
最新评论
-
damoluomu:
简单易懂
Java Web开发Session超时设置 -
di1984HIT:
学习了~~~~~~
Java Web开发Session超时设置 -
lord_is_layuping:
...
Java Web开发Session超时设置 -
15111285554:
...
Java Web开发Session超时设置 -
sfg1314:
暂停后重新下载就会报错:ClientAbortExceptio ...
Java Web 文件下载之断点续传
Struts2文件上传默认采用apache的文件上传的包,新建处理上传的Servlet 如下:
在WebRoot下面新建文件夹:upload,项目发布到服务器中去时服务器中就一个upload的文件夹
web.xml中Servlet配置如下:
<servlet> <servlet-name>UploadServlet</servlet-name> <servlet-class>com.mengya.servlet.UploadServlet</servlet-class> </servlet> <servlet-mapping> <servlet-name>UploadServlet</servlet-name> <url-pattern>/UploadServlet</url-pattern> </servlet-mapping>
新建JSP如下:
<form action="UploadServlet" method="post" enctype="multipart/form-data"> username:<input type="text" name="username"><br> password:<input type="password" name="password"><br> file1:<input type="file" name="file1"><br> file2:<input type="file" name="file2"><br> <input type="submit" value="上传"> </form>
/** * * @author 张明学 * * 使用apache的commons-io-1.3.2.jar,commons-fileupload-1.2.1.jar完成处理文件上传的Servlet */ public class UploadServlet extends HttpServlet { public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { /** * request.getRealPath("/")返回的是当前项目所在硬盘的路径 如:C:\Program Files\Apache * Software Foundation\Tomcat 6.0\webapps\Struts2_9\ * request.getRealPath("/upload")返回的是当前项目所在硬盘的路径+根目录下面的upload的路径 * 如:C:\Program Files\Apache Software Foundation\Tomcat * 6.0\webapps\Struts2_9\Upload */ String path = request.getRealPath("/upload"); DiskFileItemFactory factory = new DiskFileItemFactory(); /** * Apache上传组件上传的文件若小于某一值时就将要上面的文件放在内存中,否则就放到一个临时的目录中去。 */ /** * 设置文件小于多少时放到内存当中去。1024*1024为1M的大小 */ factory.setSizeThreshold(1024 * 1024); /** * 设置大于上面设置的大小的文件上传时所放的临时目录,上传完成后临时目录所存放的垃圾文件不自动删除。 */ factory.setRepository(new File(path)); /** * ServletFileUpload完成上传的核内类 */ ServletFileUpload servletUpload = new ServletFileUpload(factory); try { List<FileItem> list = servletUpload.parseRequest(request); for (FileItem item : list) { /** * 非file字段,即普通的字段 */ if (item.isFormField()) { /** * 获得字段的名称,即对应页面文本框等的名称 */ String name = item.getFieldName(); /** * 以gbk方式获得该字段的value值,即对应页面文本框等所输入的值 */ String value = item.getString("gbk"); request.setAttribute(name, value); } else { /** * file型字段 */ /** * 获得页面file的名称 */ String name = item.getFieldName(); /** * 获得页面file中用户选择的文件的路径(与普通的字段不同) * 由于不同的浏览器所取得值不同,有的得到是所选择文件的路径,有的得到的就是所选择的文件的名称。 * 如:有的浏览器所取得的是:C:\Documents and * Settings\Administrator\桌面\电话本.txt 有的浏览器所取得的是:电话本.txt */ String value = item.getName(); /** * 下面做一个统一的处理 若为文件名则下面没有”\“则start为-1 */ int start = value.lastIndexOf("\\"); String fileName = value.substring(start + 1); request.setAttribute(name, fileName); /** * 下面做上传的处理 */ InputStream is = item.getInputStream(); /** * 上传的路径依然选择path */ File UploadFile = new File(path, fileName); OutputStream os = new FileOutputStream(UploadFile); byte[] buffer = new byte[400]; int length = 0; while ((length = is.read(buffer)) > 0) { os.write(buffer, 0, buffer.length); } os.close(); is.close(); /** * 更简单的上传方式 * 无需使用InputStream和OutputStream对象item.write(File)即可 * item.write(UploadFile); */ } } } catch (FileUploadException e) { e.printStackTrace(); } } public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { this.doPost(request, response); } }
- Struts2_9.rar (131.5 KB)
- 描述: 我的Struts2.0文件上传原理实例
- 下载次数: 101
发表评论
-
Struts2 + JasperReport应用二:jasperReport Web形式打印
2010-02-02 16:16 5286将jasperReport设计文件和编译文件放到webRoot ... -
Struts2 + JasperReport应用一:导PDF,Excel,HTML显示
2010-01-29 16:34 9893我用的是struts2.1.6,从struts2的自带的dem ... -
Struts2 标签使用简介
2009-12-23 19:33 2677web.xml配置如下: <fil ... -
Struts2 的OGNL使用简介
2009-12-22 13:25 2369<div align="center" ... -
POI与Struts2的使用 poi-2.5.1.jar
2009-09-25 17:43 4904一.POI 简介 Jakarta POI 是apache的子项 ... -
jFreeChart与Struts2的组合,将jFreeChart作为显示视图
2009-09-25 16:26 1495jFreeChart与Struts2的组合: 一,加 ... -
Struts2与Spring2.0的组合
2009-09-09 09:46 1068Struts2与Spring的集成: 一,加入Str ... -
Struts2的异常处理
2009-09-07 13:41 1392Struts2的异常处理: 1,定义自己的异常信息类:继承Ex ... -
Struts2.0深入学习 Strust2与Servlet API,Action多方法调用,result标签的type的类型
2009-09-06 11:08 4454Struts2深入探索: 1,package中的ab ... -
Struts2.0深入学习 命名空间,模型驱动,表单重复提交
2009-09-06 11:04 1893Struts2深入探索: 1,package中的ab ... -
Struts2国际化详解
2009-09-03 15:32 2739Struts2国际化: 1,国际 ... -
Struts2文件下载
2009-09-02 20:09 10625Struts2文件下载: Struts2文件下载对应将一个In ... -
设置Struts2文件上传的类型和大小
2009-09-02 20:09 5241设置Struts2文件上传的类型和大小: 在struts. ... -
Struts2多文件上传
2009-09-02 20:08 2478Struts2多文件上传: 在Action中配置三个属性: p ... -
Struts2文件上传详解
2009-08-31 17:27 2407Struts2文件上传: 一:请选参看Struts2_9中的S ... -
Struts2的监听器的使用
2009-08-25 19:02 2547Struts2的监听器: 一,建立监听器: ... -
Struts2的拦截器的使用详解
2009-08-25 18:59 2389Struts2的拦截器: 一,拦截器的使用: ... -
Struts2拦截器原理分析
2009-08-25 18:55 2390第一步:创建目标对象的接口 /** * 目标对象的接口 ... -
Struts2的检证框架详解
2009-08-25 13:00 2464Struts2的检证框架: 一,根据字段校验(为每一 ... -
Struts2的Action多个方法配置和验证
2009-08-18 20:16 4803Struts2的Action多个方法配置和验证: 1 ...
相关推荐
Struts2.0文件上传是Java Web开发中的一个重要实践,它允许用户在Web应用程序中上传文件,例如图片、文档或音频文件。这个实例是针对初学者设计的,可以帮助理解并实现这一功能。以下是对Struts2.0文件上传机制及其...
Struts2.0 文件上传下载是Java Web开发中常见的功能,它涉及到客户端与服务器的数据交互。Struts2作为一款强大的MVC框架,提供了方便的文件上传和下载支持。本篇文章将深入探讨Struts2实现文件上传下载的核心概念、...
这个“struts2.0上传文件源码”提供了一个完整的示例,展示了如何在Struts2.0环境中实现文件上传功能。在Web应用中,文件上传是常见的需求,例如用户可能需要上传头像、文档或者其他类型的数据。 在Struts2.0中,...
通过深入研究这个Struts2.0的源代码,你可以更好地理解其工作原理,学习如何有效地利用它的特性来构建高效、健壮的Web应用。同时,这也有助于你了解如何将Struts2与其他技术(如Spring、Hibernate等)整合,构建更...
包含了Struts2.0的进阶主题,如动态方法调用(Dynamic Method Invocation,DMI)、OGNL(Object-Graph Navigation Language)表达式语言的使用、异常处理机制、国际化(Internationalization, i18n)支持以及文件上传...
Struts2.0框架是Java Web开发中的一款经典MVC(Model-View-Controller)框架,它极大地...通过系统的理论学习和实践操作,可以深入理解Struts2.0的工作原理,提高开发效率,为构建高质量的Java Web应用打下坚实基础。
通过以上步骤,你可以使用Struts2.0实现文件上传功能。在实际开发中,还可以结合其他技术,如Spring、Hibernate等,以构建更复杂的业务流程。记住,始终要关注安全性,以确保应用的稳定性和用户的数据安全。
- `commons-fileupload.jar`和`commons-io.jar`:Apache Commons项目提供的文件上传和IO操作支持。 - `commons-logging.jar`:日志抽象层,允许选择不同的日志实现。 - `servlet-api.jar`和`jsp-api.jar`:...
2. **上传和下载(Uploading and Downloading)**:Struts2.0提供了方便的文件上传和下载支持。通过简单的配置和Action方法,可以轻松处理大文件上传和下载,同时支持多文件上传。 3. **CRUD操作(Create, Read, ...
首先,我们需要理解文件上传的基本原理。在Web应用中,文件上传通常涉及到HTML表单、HTTP协议以及服务器端处理。在Struts2中,我们可以使用`<s:file>`标签来创建一个或多个文件输入字段,允许用户选择要上传的文件。...
3. **集成原理**:Struts2.0和Spring2.0的集成主要通过Spring的Action代理(Spring插件)实现。在Struts2的配置文件中,可以声明Action类由Spring管理,这样Struts2在处理请求时会从Spring容器中获取Action实例,...
2. **文件上传与下载**:Struts 2提供内置的支持来处理文件上传和下载。视频18和19分别展示了如何实现文件上传功能,包括处理上传文件的大小限制、文件类型检查等,以及如何安全地实现文件下载,避免常见的安全问题...
在本文中,我们将深入探讨如何使用ExtJS的UploadDialog插件与Struts2.0框架相结合,实现一个功能完备的多文件上传功能。这是一项在Web应用开发中常见的需求,对于用户交互性和数据管理有着重要作用。 首先,让我们...
- **文件上传/下载**:Struts 2提供了便捷的文件上传和下载功能。 - **验证机制**:内置了一套完整的验证框架,支持前端和后端的数据验证。 4. **最佳实践** - **模块化开发**:鼓励开发者按照功能划分不同的...
9. **文件上传与下载**:演示如何在Struts2中处理文件上传和下载,包括文件大小限制、类型检查等。 10. **插件与扩展**:介绍Struts2的一些流行插件,如Tiles、Struts2 Dojo、Struts2 jQuery等,以及如何利用它们...
这本书可能还会涉及Struts2.0的最新版本更新,以及一些高级特性,如自定义拦截器、异常处理、文件上传下载、Ajax支持等。通过阅读这本书,开发者能够全面理解Struts2.0的体系结构,熟练掌握其使用方法,从而在实际...
10. **文件上传和下载**:Struts2支持文件上传和下载功能,教程会介绍如何实现文件上传的Action、配置及前端表单设计。 11. ** strut2与Spring集成**:讲解如何将Struts2与Spring框架集成,实现依赖注入,提高代码...
11. **实战案例**:通过实际项目案例,演示如何利用Struts2开发完整的Web应用,包括用户登录注册、CRUD操作、文件上传下载等常见功能。 12. **最佳实践**:分享Struts2开发的最佳实践,包括代码规范、性能优化、...
未上传的视频文件可能包含详细的操作演示和讲解,如如何创建Action、编写配置文件、调试程序等,这些都是理解和掌握Struts 2.0不可或缺的部分。 通过这个实例,学习者可以了解到如何使用Struts 2.0构建一个完整的...