- 浏览: 990112 次
- 性别:
- 来自: 上海
文章分类
- 全部博客 (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 13421断点续传,听上去似乎是个比较高级的话题,本文 ... -
Java Web开发Session超时设置
2013-04-12 10:17 113059在Java Web开发中,Session为我们提供了很多方便 ... -
Web文件下载注意事项
2012-11-29 00:11 2017一、Content-Disposition的设 ... -
Java Web上传组件使用:Commons-fileupload
2010-11-04 19:47 6806Apache的上传组件其它已经被封装到Struts那中去了, ... -
Java Web上传组件使用:JSPUpload
2010-08-14 16:11 11143关于JSPUpload的介绍可以去google一下,jar和使 ... -
Java常用FTP文件操作说明 Apache.FTPClient,ftp4j,jftp
2010-05-24 18:39 16966最近因工作需要,数据库中的数据需要从FTP服务中抽取数据文件然 ... -
解决Java web开发中的中文问题
2010-03-23 20:01 1278说明:转载于:http://www.blogjava.net/ ... -
设置文件下载时客户端显示的附件中文名
2010-03-23 19:03 5069/** * 设置下载文件中文件的名称 * ... -
Struts中的图形报表
2009-04-27 19:33 1715我在只实现了柱状图,其它的图形可以参看我的JavaWeb部门的 ... -
JavaWeb图形报表柱状图
2009-04-27 19:29 2258步骤说明:1,导入log4j.jar,jfreechart-0 ... -
JavaWeb图形报表折线图
2009-04-27 19:25 3814步骤说明:1,导入log4j.jar,jfreechart-0 ... -
JavaWeb图形报表饼状图
2009-04-27 19:19 5195步骤说明:1,导入log4j.jar,jfreechart-0 ...
相关推荐
2. **初始化Client**:使用配置信息初始化COS的Client对象,这是与COS服务进行交互的基础。 3. **创建Bucket**:Bucket是COS中的存储空间,可以看作是文件的容器。需要先创建一个Bucket,然后才能在这个Bucket内...
使用基于COS的Java文件上传组件,开发者可以享受到以下优势: 1. **高性能**:优化的上传策略可以减少网络延迟,提高上传速度。 2. **高可用性**:云存储服务通常具有高可用性和高扩展性,能应对大流量的上传需求。 ...
综上所述,Java文件上传组件COS.7z很可能是包含了实现上述功能的代码示例、配置文件、文档或其他辅助资源,帮助开发者快速集成和使用腾讯云COS服务。在实际项目中,理解这些知识点并正确应用,可以有效地实现安全、...
【描述】基于Java的文件上传组件COS.zip包含了一些关键组成部分,用于帮助开发者快速集成和使用该组件: 1. **license.txt**: 这个文件通常包含了软件的许可协议,定义了用户可以如何使用、修改和分发代码。阅读并...
【标题】"基于Java的文件上传组件COS.zip"指的是一个使用Java语言开发的文件上传组件,该组件可能被设计用于将用户端的文件上传到特定的存储服务,如腾讯云对象存储(COS,Cloud Object Storage)。这个组件可能是...
在本压缩包“基于Java的实例源码-文件上传组件 COS.zip”中,包含的是一个使用Java语言开发的文件上传组件,它与腾讯云对象存储服务(COS,Cloud Object Storage)进行了集成。这个组件使得开发者能够方便地将本地...
### Cos组件实现上传下载知识点详解 #### 一、概述 在现代Web开发中,文件的上传与下载是一项基本且常用的功能。Cos组件提供了一种简便的方式来处理这些需求。本篇文章将详细阐述如何利用Cos组件实现文件的上传和...
5. **与COS交互**:使用腾讯云的`COS` SDK或者API,获取上传文件的信息,如文件URL,以便在前端展示或进一步处理。 6. **错误处理**:在上传过程中可能会遇到各种问题,如网络中断、文件大小超限等。因此,需要设置...
总的来说,这个Java文件上传组件COS源码示例提供了一个便捷的方式,让我们能够在Java应用中无缝对接腾讯云的对象存储服务。通过研究源码和相关文档,我们可以深入理解文件上传的过程,提升我们的开发技能,并且能够...
本话题主要涉及的是"smartupload/fileupload/cos"三种常用的下载组件,这些组件在Java JSP环境中被广泛使用。接下来,我们将深入探讨这三个组件及其在实际开发中的应用。 首先,SmartUpload是一个功能强大的Java...
在Java开发中,文件上传是一项常见的任务,尤其是在构建Web应用时。腾讯云对象存储(Cloud Object Storage,简称COS)提供了一种高效、安全、稳定的方式来存储和分发大量数据。相较于传统的FileUpload组件,COS文件...
标题中的“SWFUpload+COS 上传组件+servelet 实现大附件上传”是指使用SWFUpload这款JavaScript库,结合腾讯云对象存储服务(COS)以及Servlet技术,来实现大文件的分片上传功能。这是一个常见的Web应用上传方案,...
在Java Web中,通常使用Servlet来接收并处理HTTP请求,包括上传文件的POST请求。用户通过浏览器提交包含文件的数据,Servlet解析请求,获取文件数据,然后将其保存到服务器的指定位置。 在给定的压缩包文件中,我们...
描述中提到"COS上传附件组件,直接解压即可使用",这表明这个组件是为了解决Web应用中的文件上传需求而设计的。通常,这种组件会提供一个用户友好的界面,允许用户选择本地文件并将其上传到服务器。"直接解压即可...
对于使用JSP(JavaServer Pages)技术的开发者来说,实现文件上传的方法有很多,例如使用jspsmart公司的SmartUpload、Struts框架提供的组件等。本文将重点介绍如何使用Cos组件来实现文件上传功能。 #### Cos组件...
总的来说,"JSP+Servlet+cos文件上传下载Jar包.rar"为Java Web开发提供了一个高效且易于使用的工具集,帮助开发者快速构建具备文件上传和下载功能的Web应用。通过理解并熟练运用这些库,你可以提升你的Web开发技能,...