- 浏览: 981279 次
- 性别:
- 来自: 上海
文章分类
- 全部博客 (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 5233将jasperReport设计文件和编译文件放到webRoot ... -
Struts2 + JasperReport应用一:导PDF,Excel,HTML显示
2010-01-29 16:34 9838我用的是struts2.1.6,从struts2的自带的dem ... -
Struts2 标签使用简介
2009-12-23 19:33 2618web.xml配置如下: <fil ... -
Struts2 的OGNL使用简介
2009-12-22 13:25 2320<div align="center" ... -
POI与Struts2的使用 poi-2.5.1.jar
2009-09-25 17:43 4855一.POI 简介 Jakarta POI 是apache的子项 ... -
jFreeChart与Struts2的组合,将jFreeChart作为显示视图
2009-09-25 16:26 1457jFreeChart与Struts2的组合: 一,加 ... -
Struts2与Spring2.0的组合
2009-09-09 09:46 1017Struts2与Spring的集成: 一,加入Str ... -
Struts2的异常处理
2009-09-07 13:41 1355Struts2的异常处理: 1,定义自己的异常信息类:继承Ex ... -
Struts2.0深入学习 Strust2与Servlet API,Action多方法调用,result标签的type的类型
2009-09-06 11:08 4407Struts2深入探索: 1,package中的ab ... -
Struts2.0深入学习 命名空间,模型驱动,表单重复提交
2009-09-06 11:04 1842Struts2深入探索: 1,package中的ab ... -
Struts2国际化详解
2009-09-03 15:32 2690Struts2国际化: 1,国际 ... -
Struts2文件下载
2009-09-02 20:09 10583Struts2文件下载: Struts2文件下载对应将一个In ... -
设置Struts2文件上传的类型和大小
2009-09-02 20:09 5195设置Struts2文件上传的类型和大小: 在struts. ... -
Struts2多文件上传
2009-09-02 20:08 2430Struts2多文件上传: 在Action中配置三个属性: p ... -
Struts2文件上传详解
2009-08-31 17:27 2361Struts2文件上传: 一:请选参看Struts2_9中的S ... -
Struts2的监听器的使用
2009-08-25 19:02 2504Struts2的监听器: 一,建立监听器: ... -
Struts2的拦截器的使用详解
2009-08-25 18:59 2352Struts2的拦截器: 一,拦截器的使用: ... -
Struts2拦截器原理分析
2009-08-25 18:55 2346第一步:创建目标对象的接口 /** * 目标对象的接口 ... -
Struts2的检证框架详解
2009-08-25 13:00 2416Struts2的检证框架: 一,根据字段校验(为每一 ... -
Struts2的Action多个方法配置和验证
2009-08-18 20:16 4757Struts2的Action多个方法配置和验证: 1 ...
相关推荐
Struts2.0 实现文件上传进度 原理和实现 主要是实现Struts2.0的监听器
里面包括了文件上传的jsp页面和action中的处理代码。可以清楚的知道文件上传与下载的工作原理
12.1.2 Struts 2.0与Struts 1.x框架的区别 215 12.2 MyEclipse创建基于Struts 2.0框架的项目 215 12.2.1 下载Struts 2.0开发包 216 12.2.2 创建Struts 2.0项目 216 12.2.3 配置Struts 2.0项目 217 12.2.4 创建Struts...
Struts2基本使用介绍,Strut2.0的由来,常用标签介绍,Action介绍,Struts + Spring + hibernate,表单标志使用小技巧,实现原理,具体实现,更多配置,错误处理,多文件上传等。。。。。
13.8. Spring对分段文件上传(multipart file upload)的支持 13.8.1. 介绍 13.8.2. 使用MultipartResolver 13.8.3. 在表单中处理分段文件上传 13.9. 使用Spring的表单标签库 13.9.1. 配置标签库 13.9.2. form...
Struts2框架介绍、工作原理与架构分析、6大配置文件分析使用通配符定义action、动态方法调用,ActionContext及ServletActionContext使用,模型驱动、属性驱动,默认转换器的介绍,中的表单校验,中的国际化,文件...
Java访问权限控制,为Java操作文件、写入文件分配合适的权限,定义写到文件的信息、定义文件,输出到c:/hello.txt、写信息到文件、关闭输出流。 Java绘制图片火焰效果 1个目标文件 摘要:Java源码,图形操作,火焰...
Java访问权限控制,为Java操作文件、写入文件分配合适的权限,定义写到文件的信息、定义文件,输出到c:/hello.txt、写信息到文件、关闭输出流。 Java绘制图片火焰效果 1个目标文件 摘要:Java源码,图形操作,火焰...
我们掌握了数据库及其应用技术、数据库原理、计算机网络技术等课程,对数据库的设计、应用、维护及局域网的组成有了深刻的认识与一定的动手实践能力,考取了信息处理、程序设计、数据库技术等国家IT认证。...
13.8. Spring对分段文件上传(multipart file upload)的支持 13.8.1. 介绍 13.8.2. 使用MultipartResolver 13.8.3. 在表单中处理分段文件上传 13.9. 使用Spring的表单标签库 13.9.1. 配置标签库 13.9.2. form...
我们掌握了数据库及其应用技术、数据库原理、计算机网络技术等课程,对数据库的设计、应用、维护及局域网的组成有了深刻的认识与一定的动手实践能力,考取了信息处理、程序设计、数据库技术等国家IT认证。...
13.8. Spring对分段文件上传(multipart file upload)的支持 13.8.1. 介绍 13.8.2. 使用MultipartResolver 13.8.3. 在表单中处理分段文件上传 13.9. 使用Spring的表单标签库 13.9.1. 配置标签库 13.9.2. form标签 ...
13.8. Spring对分段文件上传(multipart file upload)的支持 13.8.1. 介绍 13.8.2. 使用MultipartResolver 13.8.3. 在表单中处理分段文件上传 13.9. 使用Spring的表单标签库 13.9.1. 配置 13.9.2. form标签 ...
13.8. Spring对分段文件上传(multipart file upload)的支持 13.8.1. 介绍 13.8.2. 使用MultipartResolver 13.8.3. 在表单中处理分段文件上传 13.9. 使用Spring的表单标签库 13.9.1. 配置 13.9.2. form标签 ...