- 浏览: 578516 次
- 性别:
- 来自: 北京
文章分类
- 全部博客 (411)
- webservice (3)
- oracle (37)
- sqlserver (8)
- j2ee (56)
- linux (7)
- javaweb (47)
- office (1)
- struts (23)
- hibernate (11)
- spring (29)
- 网络 (2)
- tomcat (13)
- tongweb (0)
- weblogic (0)
- powerdesiginer (3)
- svn (3)
- js (20)
- ie (2)
- 编译 (3)
- css (2)
- 操作系统 (5)
- Android (41)
- jbpm4.3 (1)
- fckeditor (3)
- 操作excel (2)
- db2常用命令 (1)
- ibatis (5)
- mysql (16)
- 表达式语言 (1)
- java方式调用存储过程 (1)
- ca (1)
- linux客户端 (1)
- 电子数码 (1)
- 行业应用 (12)
- 开发工具 (4)
- 面试 (1)
- 计算机原理 (1)
- NOSQL (5)
- 虚拟机 (1)
- nginx (0)
- velocity (2)
- jndi (1)
- spring mvc (39)
- springmvc (32)
- 安全 (5)
- htmleditor (6)
- iphone4 (1)
- html (4)
- jstl (2)
- ckeditor (5)
- 连接池 (1)
- jquery (6)
- 分页 (1)
- 技术研发规则 (1)
- javamail (1)
- maven (2)
- upload (1)
- log (1)
- 测试 (10)
- spring roo (1)
- 版本控制 (2)
- find bugs (0)
- jsf (0)
- springroo (0)
- 小道理 (1)
- 小道理,技术标准 (1)
- jsf (0)
- bitbao (2)
- redmine (3)
- 团队意识 (1)
- mybatis (2)
- jquery mobile (1)
- flexpaper (0)
- json (4)
- URLRewriteFilte (1)
- html5 (1)
- 都乐保活动 (0)
- openfire (0)
- TreeMap (1)
- build (0)
- javaweb,tag (0)
- algorithm (1)
- tag (2)
- 扯淡 (0)
- mac (2)
- 叶一火(老一) (1)
- 游玩 (1)
- 编码 (1)
- 上线部署 (0)
- 研发管理 (0)
- thumbnailator (2)
- 旅游 (0)
- bingweibo (1)
- 杂谈 (4)
- ktv (1)
- weibo (1)
- 爱情 (2)
- 饮食 (1)
- MediaWiki (1)
- git (1)
- 版本库 (1)
- servlet (1)
- 感悟 (1)
- 人生 (1)
- highcharts (1)
- poi (0)
- websphere (0)
- php (1)
最新评论
-
woshixushigang:
good
org.springframework.beans.TypeMismatchException: Failed to convert property valu -
nathanleewei:
org.springframework.jdbc.core.B ...
org.springframework.beans.TypeMismatchException: Failed to convert property valu -
浪禾木:
请问是ckeditor\contents.css吗?改过以后 ...
ckeditor自动换行问题 -
simusuishi:
刚哥威武!
ckeditor取值赋值问题 -
a455642158:
收割完毕……
Android开源项目源码下载(不断更新中)
COS这个文件上传组件可以说在几个开源的上传文件组件中性能是非常优秀的,上传速度很快(相比fileUpload,smart等组件),但在使用Struts2结合COS文件上传时要注意Struts2实现了自己的MultiPartRequest,这个过滤后的request是不认COS的。
COS相比其它上传文件组件而言,除了具有速度优势外,其使用的便携性是非常好的,一两句简单地代码就搞定了COS对多文件的上传(指定下保存的地址、总文件上传大小限制、文件重命名策略[可选]、编码等),不像fileUpload,smart,Struts2等上传文件时那么麻烦。
工程结构图:
代码:
- /**
- * CosTest
- * 去上传文件页面
- */
- package com.labci.upload.file.servlet;
- import java.io.IOException;
- import javax.servlet.ServletException;
- import javax.servlet.http.HttpServlet;
- import javax.servlet.http.HttpServletRequest;
- import javax.servlet.http.HttpServletResponse;
- import com.labci.upload.file.util.FileUtils;
- /**
- * @author Bill Tu(tujiyue/iwtxokhtd)
- * Jun 4, 2011[10:15:38 PM]
- *
- */
- public class ToUploadFileServlet extends HttpServlet {
- /**
- *
- */
- private static final long serialVersionUID = -5958936751236640280L;
- @SuppressWarnings("deprecation")
- @Override
- protected void doGet(HttpServletRequest req, HttpServletResponse resp)
- throws ServletException, IOException {
- String savePath=getInitParameter("path");
- String fullPath=req.getRealPath(savePath);
- String allFileNames=FileUtils.getAllFileNames(fullPath);
- req.setAttribute("allFileNames", allFileNames);
- req.getRequestDispatcher(getInitParameter("page")).forward(req, resp);
- }
- }
- /**
- * CosTest
- * 使用COS实现文件上传的Servlet
- */
- package com.labci.upload.file.servlet;
- import java.io.File;
- import java.io.IOException;
- import java.util.Enumeration;
- import javax.servlet.ServletException;
- import javax.servlet.http.HttpServlet;
- import javax.servlet.http.HttpServletRequest;
- import javax.servlet.http.HttpServletResponse;
- import com.labci.upload.file.util.CustomFileRenamePolicy;
- import com.labci.upload.file.util.FileUtils;
- import com.oreilly.servlet.MultipartRequest;
- import com.oreilly.servlet.multipart.DefaultFileRenamePolicy;
- /**
- * @author Bill Tu(tujiyue/iwtxokhtd)
- * Jun 4, 2011[10:29:58 PM]
- *
- */
- public class UploadFileServlet extends HttpServlet {
- /**
- *
- */
- private static final long serialVersionUID = 2006618974553985487L;
- //默认值
- private static int FILE_MAX_SIZE=1024;
- private static String savePath="/upload";
- private static String targetPage="index.jsp";
- private static String encoding="gbk";
- @Override
- public void init() throws ServletException {
- FILE_MAX_SIZE=Integer.parseInt(getInitParameter("max"));
- savePath=getInitParameter("path");
- targetPage=getInitParameter("page");
- encoding=getInitParameter("encode");
- }
- @SuppressWarnings({ "deprecation", "unchecked" })
- @Override
- protected void doGet(HttpServletRequest req, HttpServletResponse resp)
- throws ServletException, IOException {
- String fullPath=req.getRealPath(savePath);
- File dir=new File(fullPath);
- if(!dir.exists()){
- dir.mkdirs();
- }
- /**
- * 1.不使用文件命名策略的情况下,上传相同的文件会进行覆盖,只保留一份
- * 2.使用默认的文件命名策略的情况下,上传相同的文件会在文件名后加1.2.3等数字系列号
- * 3.可实现FileRenamePolicy接口使用自己的文件命名策略
- */
- // DefaultFileRenamePolicy defaultPolicy=new DefaultFileRenamePolicy();
- CustomFileRenamePolicy customPolicy=new CustomFileRenamePolicy();
- @SuppressWarnings("unused")
- MultipartRequest mpr=new MultipartRequest(req,fullPath,FILE_MAX_SIZE,encoding,customPolicy);
- Enumeration fileNames=mpr.getFileNames();//得到所有已上传的文件名
- while(fileNames.hasMoreElements()){
- String fileName=(String) fileNames.nextElement();
- System.out.println(mpr.getFilesystemName(fileName));//得到该文件的现上传后的文件名
- System.out.println(mpr.getOriginalFileName(fileName));//得到该文件上传前的文件名(即原始名)
- }
- String allFileNames=FileUtils.getAllFileNames(fullPath);
- req.setAttribute("allFileNames", allFileNames);
- req.getRequestDispatcher(targetPage).forward(req, resp);
- }
- @Override
- protected void doPost(HttpServletRequest req, HttpServletResponse resp)
- throws ServletException, IOException {
- doGet(req,resp);
- }
- }
- /**
- * CosTest
- * 定义自己的文件重命名策略
- */
- package com.labci.upload.file.util;
- import java.io.File;
- import com.oreilly.servlet.multipart.FileRenamePolicy;
- /**
- * @author Bill Tu(tujiyue/iwtxokhtd)
- * Jun 4, 2011[10:58:09 PM]
- *
- */
- public class CustomFileRenamePolicy implements FileRenamePolicy {
- public File rename(File file) {
- //假如就按时间戳来命名吧
- long time=System.currentTimeMillis();
- int lastDotPos=file.getName().lastIndexOf(".");
- String bodyName=file.getName().substring(0,lastDotPos);
- if(lastDotPos != -1){
- //有后缀名
- return new File(file.getParent(),bodyName+time+file.getName().substring(lastDotPos));
- }else{
- return new File(file.getParent(),bodyName+time);
- }
- }
- }
- /**
- * CosTest
- * 上传文件所用到的工具类
- */
- package com.labci.upload.file.util;
- import java.io.File;
- /**
- * @author Bill Tu(tujiyue/iwtxokhtd)
- * Jun 4, 2011[4:15:11 PM]
- *
- */
- public class FileUtils {
- private FileUtils(){
- }
- /**
- * 得到所有的文件名
- * @param dirPath
- * @return
- */
- public static String getAllFileNames(String dirPath){
- StringBuilder fileNames=new StringBuilder("");
- File files=new File(dirPath);
- if(files.isDirectory()){
- File []allFiles=files.listFiles();
- if(null!=allFiles && allFiles.length>0){
- for(File f:allFiles){
- if(f.isFile()){
- fileNames.append(f.getName()).append(",");
- }
- }
- fileNames.deleteCharAt(fileNames.length()-1);
- }
- }
- return fileNames.toString();
- }
- }
- <?xml version="1.0" encoding="UTF-8"?>
- <web-app version="2.4"
- xmlns="http://java.sun.com/xml/ns/j2ee"
- xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
- xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee
- http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">
- <servlet>
- <servlet-name>toUploadFilePage</servlet-name>
- <servlet-class>com.labci.upload.file.servlet.ToUploadFileServlet</servlet-class>
- <init-param>
- <param-name>page</param-name>
- <param-value>uploadFile.jsp</param-value>
- </init-param>
- <init-param>
- <param-name>path</param-name>
- <param-value>/upload</param-value>
- </init-param>
- </servlet>
- <servlet-mapping>
- <servlet-name>toUploadFilePage</servlet-name>
- <url-pattern>/toUploadFilePage</url-pattern>
- </servlet-mapping>
- <servlet>
- <servlet-name>uploadFile</servlet-name>
- <servlet-class>com.labci.upload.file.servlet.UploadFileServlet</servlet-class>
- <init-param>
- <param-name>page</param-name>
- <param-value>uploadFile.jsp</param-value>
- </init-param>
- <init-param>
- <param-name>path</param-name>
- <param-value>/upload</param-value>
- </init-param>
- <init-param>
- <param-name>max</param-name>
- <param-value>104857600</param-value>
- </init-param>
- <init-param>
- <param-name>encode</param-name>
- <param-value>utf-8</param-value>
- </init-param>
- </servlet>
- <servlet-mapping>
- <servlet-name>uploadFile</servlet-name>
- <url-pattern>/uploadFile</url-pattern>
- </servlet-mapping>
- </web-app>
- <%@ page language="java" contentType="text/html;charset=utf-8" pageEncoding="utf-8"%>
- <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
- <html>
- <head>
- <title>使用COS上传文件示例</title>
- </head>
- <body>
- <a href="toUploadFilePage" mce_href="toUploadFilePage">使用COS上传文件</a>
- </body>
- </html>
- <%@ page language="java" contentType="text/html;charset=utf-8" pageEncoding="utf-8"%>
- <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
- <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
- <html>
- <head>
- <title>上传文件</title>
- </head>
- <body>
- <table>
- <tr>
- <td>
- <c:choose>
- <c:when test="${empty allFileNames}">
- <font color="blue">暂无上传的文件,请上传!</font>
- </c:when>
- <c:otherwise>
- <font color="red"><b>${allFileNames}</b></font>
- </c:otherwise>
- </c:choose>
- </td>
- </tr>
- <%--COS组件支持同时上传多个文件,不需要在上传代码中取文件名、大小等--%>
- <tr>
- <td>
- <form action="uploadFile" method="post" enctype="multipart/form-data">
- <p>
- <input type="file" name="file1"/>
- </p>
- <p>
- <input type="file" name="file2"/>
- </p>
- <p>
- <input type="submit" value="上传"/>
- </p>
- </form>
- </td>
- </tr>
- </table>
- </body>
- </html>
示例效果图:
1.首页面:
2.未使用任何重命名策略情况下上传相同文件时的情况:
发表评论
-
RESTFUL
2013-05-29 17:21 0a -
hibernate命名查询问题
2013-01-30 16:38 1323hibernate 注解 @OneToOne(fetc ... -
hibernate [Null value was assigned to a property of primitive type setter of sco
2012-12-25 19:51 1115今天开发时候 hibernate 查询报错,分析原因如下: ... -
Arrays.asList详解
2012-09-10 09:52 889Arrays.asList详解 记得以前写过一 ... -
mapper.readValue读取null
2012-08-17 19:21 2606如下代码,这样写不会走catch方法,此方法不报ioExcep ... -
string.split(",")返回的长度问题
2012-08-17 15:38 918String test = "#我的测试#&q ... -
thumbnailator 图片缩放问题
2012-08-17 19:29 2753这段代码上传1.7m图片会报错: publ ... -
模拟微博新鲜事短网址处理方式
2012-08-16 17:40 0a -
新鲜事短连接
2012-08-19 12:01 958现在需求如下: 使 ... -
jackson objectMapper.readValue 读取并存成想要的类型
2012-07-26 20:16 3716两种方式: java反射里面有个很有趣的东东,反射解析成li ... -
spring mvc responseBody 会把特殊字符转义
2012-07-26 19:53 4509框架用的spring 采用spring mvc 方式进行图片上 ... -
Out of range value for column 'bindUid' at row 1
2012-07-19 20:35 1495今天弄新浪微博绑定,数据库oauth_token表需要插入bi ... -
spring mvc 自己遇到的几个错误
2012-06-13 14:36 1202where 1=1 and t.name like '%&q ... -
Request method 'POST' not supported
2012-06-08 10:53 5209项目采用spring mvc框架实现,插入数据时候采用 ... -
beanPropertyRowMapper
2012-08-10 11:24 1085@SuppressWarnings(&quo ... -
org.codehaus.jackson.map.JsonMappingException
2012-08-17 19:30 989当一个类的所有属性都没有getter时(所有属性都是publi ... -
validApiToken
2012-08-10 11:26 977/** * 检验token的有效性 * @p ... -
split
2012-05-23 10:46 1203//String[] idArr = StringUtil ... -
spring mvc title展示的几种写法
2012-05-18 17:16 1093我记录的是工作中遇到的,容易忽视的问题,高手可以绕行了。积累也 ... -
c:import src="" jsp页面同步方式获取数据
2012-05-14 11:28 1086可以把页面分割成不同的几块,同步方式获取数据。即分别调用 ...
相关推荐
下面我们将详细探讨COS文件上传的相关知识点。 一、COS基本概念 1. 存储桶(Bucket):COS中的基本存储单元,可以理解为一个大的容器,用于存放对象(Objects)。每个存储桶都有全局唯一的名称。 2. 对象(Object)...
【标题】:“COS文件上传demo” 在云存储服务领域,腾讯云对象存储(Cloud Object Storage,简称COS)提供了一种高效、安全、稳定的数据存储解决方案。本示例主要介绍如何利用`cos.jar`这个腾讯云COS的Java SDK,...
相较于传统的FileUpload组件,COS文件上传在性能和文件大小处理上具有显著优势。下面我们将深入探讨Java中如何使用COS进行文件上传,并了解其背后的原理和技术细节。 首先,我们需要引入COS的Java SDK。在`....
"JSP+Servlet+cos文件上传下载Jar包.rar"是一个压缩包,它提供了实现这些功能所需的关键库。让我们详细了解一下这个包以及如何利用其中的资源。 1. **cos.jar**:这是China Online System(COS)的Java库,主要用于...
腾迅云COS文件 上传,支持图片裁剪压缩等,视频截取转码等操作,自动判断文件大小进行分片上传异步获取结果,文档参考https://blog.csdn.net/weixin_39179428/article/details/80923437
在本文中,我们将深入探讨如何使用腾讯云对象存储(Cloud Object Storage,简称COS)进行多文件上传。COS是腾讯云提供的一种高可用、高可靠、低成本的云存储服务,能够帮助用户存储和管理海量的数据。对于开发者来说...
在本文中,我们将深入探讨如何在JavaServer Pages(JSP)中利用腾讯云对象存储服务(COS)进行文件上传。JSP是一种基于Java的动态网页技术,而COS则是腾讯云提供的一种高可用、高稳定、低成本的云存储服务。通过将这...
在前端开发中,文件上传是一项常见的任务,而腾讯云COS(Cloud Object Storage)提供了可靠的云存储服务。本文将详细讲解如何使用JavaScript SDK实现在纯前端实现腾讯COS的文件上传功能。 首先,为了实现文件上传,...
本文将深入探讨如何使用COS框架实现单文件上传,并进一步说明如何通过稍加修改实现多文件上传。 首先,让我们了解COS的基本概念。COS是一种分布式存储服务,它允许用户存储和检索任意数量的数据,无论数据大小。...
在JFinal中处理文件上传时,可能会遇到需要特定组件的情况,比如标题中提到的"cos-26Dec2008.jar"。这个组件是腾讯云的对象存储服务(Cloud Object Storage,简称COS)的Java SDK,用于帮助开发者方便地与COS进行...
本文将深入探讨如何使用Java JSP(JavaServer Pages)结合COS SDK进行文件上传并实现重命名的功能。 首先,我们需要了解COS的基本操作。COS允许开发者将文件存储到云端,并提供了多种API和SDK供用户选择,包括Java ...
COS这个文件上传组件可以说在几个开源的上传文件组件中性能是非常优秀的,上传速度很快(相比fileUpload,smart等组件),但在使用Struts2结合COS文件上传时要注意Struts2实现了自己的MultiPartRequest,这个过滤后的...
Java实现COS(Cloud Object Storage)上传与下载是云计算服务中的常见操作,主要涉及对象存储的概念、Java SDK的使用以及文件I/O操作。COS通常由云服务提供商提供,用于存储大量的非结构化数据,如图片、视频、文档...
腾讯云对象存储服务(Cloud ...总的来说,这个压缩包中的jar包是实现腾讯云COS文件上传功能的关键,配合提供的教程,开发者可以快速地将腾讯云的存储服务集成到Java应用程序中,从而享受到云存储带来的便利和优势。
Java中使用COS实现文件上传功能 Java中使用COS实现文件上传功能是通过使用O'Rrilly公司开发的OpenSource组件COS来实现的,该组件用于HTTP上传文件。下面将详细介绍使用COS实现文件上传功能的过程。 首先,需要下载...
Java文件上传组件COS,全称为Cloud Object Storage,是由腾讯云提供的一种云存储服务,它支持高可用、高并发的文件存储与访问。在Java开发中,COS提供了丰富的SDK和API,使得开发者能够轻松地将应用程序与云端存储...
总的来说,利用COS Servlet上传文件涉及到客户端的表单提交和服务器端的Servlet处理,需要对HTTP协议、文件上传、MultipartRequest以及可能的业务逻辑有深入理解。同时,确保在实现过程中充分考虑安全性,以提供健壮...
1、集成市面上较热门的云厂商 2、采用链式调用模式,只需要简单的配置当前运行采用哪个厂商,即可灵活的传输文件...3、支持OSS、COS、OBS、Minio等,如果是单机应用直接配置成本地即可 4、适用于对文件依赖比较大的应用
" 指的是腾讯云对象存储服务(Cloud Object Storage,简称COS)的Java SDK,它是一个关键的开发组件,主要用于Java开发者在应用程序中实现对腾讯云COS的文件上传、下载等操作。这个jar包包含了必要的类和方法,使得...
标题中的“自制jquery+SWFUpload+COS 多文件上传组件”揭示了这个项目的核心:一个结合了jQuery、SWFUpload和腾讯云对象存储(COS)服务的多文件上传工具。这个组件允许用户在网页上批量上传文件,并将它们存储到...