- 浏览: 979984 次
- 性别:
- 来自: 上海
文章分类
- 全部博客 (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 文件下载之断点续传
因工作原因,已经好久没有上线也有更新博客了,比较了一下比较常用的JavaWeb上传组件。这里介绍的是Cos。网上也有很多它的介绍,总之只有经过自己用过才能知道它好不好。
一、JSP页面如下:
<body> <form method="POST" action="CosUploadServlet" ENCTYPE="multipart/form-data"> <table> <tr><td><input type="text" name="subject" /></td></tr> <tr><td><input type="file" name="file1"/></td></tr> <tr><td><input type="file" name="file2"/></td></tr> <tr><td><input type="file" name="file3"/></td></tr> <tr><td><input type="submit" value="上传"/></td></tr> </table> </form> <br/> <a href="CosDownloadServlet">下载</a> </body>
二、上传的Servlet如下:
/** * 使用cos组件实现文件上传 * * @author mingxue.zhang@163.com * */ public class CosUploadServlet extends HttpServlet { private static final long serialVersionUID = -9116026245071140150L; public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { File fileDir = new File(this.getServletContext() .getRealPath("/FileDir")); if (!fileDir.exists()) { fileDir.mkdirs(); } // 设置上传文件的大小,超过这个大小 将抛出IOException异常,默认大小是1M。 int inmaxPostSize = 10 * 1024 * 1024; MultipartRequest multirequest = null; // 上传文件重命名策略 RenamePolicyCos myRenamePolicyCos = new RenamePolicyCos(); try { // MultipartRequest()有8种构造函数! multirequest = new MultipartRequest(request, fileDir .getAbsolutePath(), inmaxPostSize, "GBK", myRenamePolicyCos); // GBK中文编码模式上传文件 String subject = multirequest.getParameter("subject");// 获取普通信息 System.out.println(subject); Enumeration<String> filedFileNames = multirequest.getFileNames(); String filedName = null; if (null != filedFileNames) { while (filedFileNames.hasMoreElements()) { filedName = filedFileNames.nextElement();// 文件文本框的名称 // 获取该文件框中上传的文件,即对应到上传到服务器中的文件 File uploadFile = multirequest.getFile(filedName); if (null != uploadFile && uploadFile.length() > 0) { System.out.println(uploadFile.getName()); System.out.println(uploadFile.getPath()); System.out.println(uploadFile.length()); } // 获取未重命名的文件名称 String Originalname = multirequest .getOriginalFileName(filedName); System.out.println(Originalname); } } } catch (Exception e) { e.printStackTrace(); } } public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { this.doPost(request, response); } }
三、下载的Servlet如下: /**
* 文件命名策略
*
* @author mingxue.zhang@163.com
* @date 2010-10-29
*/
public class RenamePolicyCos implements FileRenamePolicy {
public File rename(File uploadFile) {
String newName = getNewFileName(uploadFile.getName());
File renameFile = new File(uploadFile.getParent(), newName);
return renameFile;
}
private String getNewFileName(String fileName) {
StringBuffer newName = new StringBuffer();
if (null != fileName && !"".equals(fileName)) {
String type = "";
String name = "";
if (fileName.indexOf(".") != -1) {
type = fileName.substring(fileName.indexOf("."));
name = fileName.substring(0, fileName.indexOf("."));
}else{
name = fileName;
}
newName.append(name);
newName.append(getSuffix());
newName.append(type);
}
return newName.toString();
}
private String getSuffix(){
StringBuffer suffix = new StringBuffer("_");
String now = new SimpleDateFormat("yyyy_MM_dd_hh_mm_ss").format(new Date());
suffix.append(now);
suffix.append("_");
Random random = new Random();
String randomValue = String.valueOf(random.nextInt(1000));
suffix.append(randomValue);
return suffix.toString();
}
// public static void main(String[] args) {
// RenamePolicyCos my = new RenamePolicyCos();
// System.out.println(my.getNewFileName("log.txt"));
// }
}
/** * 使用cos组件实现文件下载 * * @author mingxue.zhang@163.com * @date 2010-10-29 */ public class CosDownloadServlet extends HttpServlet { public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { this.doPost(request, response); } public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { String filePath = "D:\\Tomcat\\apache-tomcat-6.0.26\\webapps\\CosUpload\\FileDir\\"; String fileName = "2010年10月安排_2010_10_29_04_52_06_178.txt"; String Originalname = "2010年10月安排.txt"; String isofilename = new String(Originalname.getBytes("gb2312"), "ISO8859-1"); response.setContentType("application/octet-stream"); response.setHeader("Content-Disposition", "attachment; filename=" + isofilename); ServletOutputStream out = null; try { out = response.getOutputStream(); ServletUtils.returnFile(filePath + fileName, out); } catch (Exception e) { e.printStackTrace(); } finally { if (null != out) { out.close(); } } } }
关于Servlet配置如下:
<servlet> <servlet-name>CosUploadServlet</servlet-name> <servlet-class>com.mengya.servlet.CosUploadServlet</servlet-class> </servlet> <servlet> <servlet-name>CosDownloadServlet</servlet-name> <servlet-class>com.mengya.servlet.CosDownloadServlet</servlet-class> </servlet> <servlet-mapping> <servlet-name>CosUploadServlet</servlet-name> <url-pattern>/CosUploadServlet</url-pattern> </servlet-mapping> <servlet-mapping> <servlet-name>CosDownloadServlet</servlet-name> <url-pattern>/CosDownloadServlet</url-pattern> </servlet-mapping>
关于上传和下载需要完善的地方还有很多, 这里只是介绍了如何使用它的一些功能。
源码和jar包可以在下面下载
- CosUpload.rar (61.2 KB)
- 描述: 我的源码
- 下载次数: 344
- cos.jar (55.8 KB)
- 描述: cos包
- 下载次数: 301
评论
发表评论
-
Java Web 文件下载之断点续传
2013-07-24 10:43 13327断点续传,听上去似乎是个比较高级的话题,本文 ... -
Java Web开发Session超时设置
2013-04-12 10:17 112820在Java Web开发中,Session为我们提供了很多方便 ... -
Web文件下载注意事项
2012-11-29 00:11 1977一、Content-Disposition的设 ... -
Java Web上传组件使用:Commons-fileupload
2010-11-04 19:47 6745Apache的上传组件其它已经被封装到Struts那中去了, ... -
Java Web上传组件使用:JSPUpload
2010-08-14 16:11 11075关于JSPUpload的介绍可以去google一下,jar和使 ... -
Java常用FTP文件操作说明 Apache.FTPClient,ftp4j,jftp
2010-05-24 18:39 16899最近因工作需要,数据库中的数据需要从FTP服务中抽取数据文件然 ... -
解决Java web开发中的中文问题
2010-03-23 20:01 1239说明:转载于:http://www.blogjava.net/ ... -
设置文件下载时客户端显示的附件中文名
2010-03-23 19:03 5022/** * 设置下载文件中文件的名称 * ... -
Struts中的图形报表
2009-04-27 19:33 1675我在只实现了柱状图,其它的图形可以参看我的JavaWeb部门的 ... -
JavaWeb图形报表柱状图
2009-04-27 19:29 2221步骤说明:1,导入log4j.jar,jfreechart-0 ... -
JavaWeb图形报表折线图
2009-04-27 19:25 3783步骤说明:1,导入log4j.jar,jfreechart-0 ... -
JavaWeb图形报表饼状图
2009-04-27 19:19 5146步骤说明:1,导入log4j.jar,jfreechart-0 ...
相关推荐
Java文件上传组件 COS FAT文件系统读写类库 fat32-lib fat32-lib 是一个用来读写 FAT 16/32 格式文件系统的纯 Java 类库(纯的)。 Eclipse的HTML格式化插件 Eclipse Tidy Eclipse HTML Tidy 是一款 Eclipse 的...
使用Java语言编写的一款用于反映颜色变化的面板,也就是大家熟悉的颜色调色板演示程序。原理是初始化颜色选择按钮,然后为颜色选择按钮增加事件处理事件,最后实例化颜色选择器。 Java二进制IO类与文件复制操作...
使用Java语言编写的一款用于反映颜色变化的面板,也就是大家熟悉的颜色调色板演示程序。原理是初始化颜色选择按钮,然后为颜色选择按钮增加事件处理事件,最后实例化颜色选择器。 Java二进制IO类与文件复制操作...
Java文件上传组件 COS FAT文件系统读写类库 fat32-lib fat32-lib 是一个用来读写 FAT 16/32 格式文件系统的纯 Java 类库(纯的)。 Eclipse的HTML格式化插件 Eclipse Tidy Eclipse HTML Tidy 是一款 Eclipse 的...
Java文件上传组件 COS FAT文件系统读写类库 fat32-lib fat32-lib 是一个用来读写 FAT 16/32 格式文件系统的纯 Java 类库(纯的)。 Eclipse的HTML格式化插件 Eclipse Tidy Eclipse HTML Tidy 是一款 Eclipse 的...
Java文件上传组件 COS FAT文件系统读写类库 fat32-lib fat32-lib 是一个用来读写 FAT 16/32 格式文件系统的纯 Java 类库(纯的)。 Eclipse的HTML格式化插件 Eclipse Tidy Eclipse HTML Tidy 是一款 Eclipse 的...
Java文件上传组件 COS FAT文件系统读写类库 fat32-lib fat32-lib 是一个用来读写 FAT 16/32 格式文件系统的纯 Java 类库(纯的)。 Eclipse的HTML格式化插件 Eclipse Tidy Eclipse HTML Tidy 是一款 Eclipse 的...
Java文件上传组件 COS FAT文件系统读写类库 fat32-lib fat32-lib 是一个用来读写 FAT 16/32 格式文件系统的纯 Java 类库(纯的)。 Eclipse的HTML格式化插件 Eclipse Tidy Eclipse HTML Tidy 是一款 Eclipse 的...
Java文件上传组件 COS FAT文件系统读写类库 fat32-lib fat32-lib 是一个用来读写 FAT 16/32 格式文件系统的纯 Java 类库(纯的)。 Eclipse的HTML格式化插件 Eclipse Tidy Eclipse HTML Tidy 是一款 Eclipse 的...
Java文件上传组件 COS FAT文件系统读写类库 fat32-lib fat32-lib 是一个用来读写 FAT 16/32 格式文件系统的纯 Java 类库(纯的)。 Eclipse的HTML格式化插件 Eclipse Tidy Eclipse HTML Tidy 是一款 Eclipse 的...
Java文件上传组件 COS FAT文件系统读写类库 fat32-lib fat32-lib 是一个用来读写 FAT 16/32 格式文件系统的纯 Java 类库(纯的)。 Eclipse的HTML格式化插件 Eclipse Tidy Eclipse HTML Tidy 是一款 Eclipse 的...
Java文件上传组件 COS FAT文件系统读写类库 fat32-lib fat32-lib 是一个用来读写 FAT 16/32 格式文件系统的纯 Java 类库(纯的)。 Eclipse的HTML格式化插件 Eclipse Tidy Eclipse HTML Tidy 是一款 Eclipse 的...
Java文件上传组件 COS FAT文件系统读写类库 fat32-lib fat32-lib 是一个用来读写 FAT 16/32 格式文件系统的纯 Java 类库(纯的)。 Eclipse的HTML格式化插件 Eclipse Tidy Eclipse HTML Tidy 是一款 Eclipse 的...
Java文件上传组件 COS FAT文件系统读写类库 fat32-lib fat32-lib 是一个用来读写 FAT 16/32 格式文件系统的纯 Java 类库(纯的)。 Eclipse的HTML格式化插件 Eclipse Tidy Eclipse HTML Tidy 是一款 Eclipse 的...
Java文件上传组件 COS FAT文件系统读写类库 fat32-lib fat32-lib 是一个用来读写 FAT 16/32 格式文件系统的纯 Java 类库(纯的)。 Eclipse的HTML格式化插件 Eclipse Tidy Eclipse HTML Tidy 是一款 Eclipse 的...
spring-web.jar(必须) :这个jar 文件包含Web 应用开发时,用到Spring 框架时所需的核心类,包括自动载入Web Application Context 特性的类、Struts 与JSF 集成类、文件上传的支持类、Filter 类和大量工具辅助类。...
jSimpleWeb,基于java1.5+的轻量级,开源mvc框架,配置简单,使用方便,只要配置一个FILTER,体积小(只有不到50K的人个源码,oreilly cos多文件上传组件,共100K),线程安全。***请以...