1、导包

2、核心类:MultipartRequest

    MultipartRequest是request的包装类

  参数1:request

  参数2:保存路径

  参数3:上传文件大小,默认为1M

  参数4:编码

  参数5:重命名FileRenamePolicy,默认重命名格式是在名字后面加数字

参数可以根据需要进行

3、与Apache-upload相比

  1、可以直接上传多文件,不用遍历

  2、获取text等简单文本不用判断

  3、可默认命名

4、Demo

 String path=getServletContext().getRealPath("file");
FileRenamePolicy rename=new DefaultFileRenamePolicy();//默认重命名,在名字后面加1,2如:名字.jpg、名字1.jpg、名字2.jpg
MultipartRequest req=new MultipartRequest(request, path, 1024*1024*10, "utf-8", rename); //获取上传文件信息
response.setContentType("text/html;charset=utf-8");
PrintWriter out= response.getWriter();
out.write("文件名:"+req.getOriginalFileName("file"));
out.write("<br/>新文件名:"+req.getFilesystemName("file"));
out.write("<br/>文件类型:"+req.getContentType("file"));
out.write("<br/>文件大小:"+req.getFile("file").length());
out.write("<br/>说明:"+req.getParameter("desc"));
out.write("<img src= '"+request.getContextPath()+"/file/"+req.getFilesystemName("file")+"'></img>");

在上面的代码中,如果上传的是中文命名的图片,则无法正常显示,所以我们需要重新命名,实现FileRenamePolicy接口

 class MyReName implements FileRenamePolicy
{
public File rename(File file) {
String fileName=file.getName();
String extName=fileName.substring(fileName.lastIndexOf("."));
String uuid=UUID.randomUUID().toString().replace("-", "");
String newName=uuid+extName;
file=new File(file.getParent(), newName);
return file;
} }

调用重命名

MultipartRequest req=new MultipartRequest(request, path, 1024*1024*10, "utf-8", new MyReName());

cos实现文件上传--推荐的更多相关文章

  1. 用COS实现文件上传

    cos是O'Rrilly公司开发的一款用于HTTP上传文件的OpenSource组件 需要cos.jar,下载地址:http://www.servlets.com/cos/ cos上传文件很简单,比f ...

  2. Struts2文件上传下载

    Struts2文件上传 Struts2提供 FileUpload拦截器,用于解析 multipart/form-data 编码格式请求,解析上传文件的内容,fileUpload拦截器 默认在defau ...

  3. 【Struts2】文件上传与下载

    一.上传 1.1 Struts2实现步骤 浏览器端 服务器端 1.2 关于Struts2中文件上传细节: 1.3 示例 jsp文件 Action类 struts.xml文件配置 二.下载 2.1 文件 ...

  4. Struts2之文件上传与下载

    时间:2017-1-11 15:47 --使用commons-fileupload组件上传1.客户端    *   method="post"    *   <input t ...

  5. 【精心推荐】几款极好的 JavaScript 文件上传插件

    文件上传功能作为网页重要的组成部分,几乎无处不在,从简单的单个文件上传到复杂的批量上传.拖放上传,需要开发者花费大量的时间和精力去处理,以期实现好用的上传功能.这篇文章向大家推荐几款很棒的 JavaS ...

  6. JSP+Servlet中使用cos.jar进行图片上传(文件上传亦然)

    链接:JSP+Servlet中使用jspsmartupload.jar进行图片上传下载 关于cos.jar,百度百科只有这么几句话(http://baike.baidu.com/subview/406 ...

  7. 摘抄--使用cos实现多个文件上传详解

    在开发中常常需要上传文件,上传文件的方式有很多种,这里有一个cos实现的例子. 首先是要拷贝cos.jar包拷贝到WEB-INF/lib目录下,然后才进行编码. 创建一个可以进行自动重命名的Java文 ...

  8. redisTemplate实现轻量级消息队列, 异步处理excel并实现腾讯云cos文件上传下载

    背景 公司项目有个需求, 前端上传excel文件, 后端读取数据.处理数据.返回错误数据, 最简单的方式同步处理, 客户端上传文件后一直阻塞等待响应, 但用户体验无疑很差, 处理数据可能十分耗时, 没 ...

  9. jsp实现文件上传(二)用cos组件实现文件上传

    jsp表单 <%@ page language="java" pageEncoding="utf-8"%> <html> <hea ...

随机推荐

  1. 『Python』爬行搜索引擎结果获得指定主机二级域名及IP信息

    0x 00 前言 前天自己在玩的时候,自己通过百度搜索主机的二级域名感觉好麻烦,自已要一页页的去翻 而且人工识别是否是重复的二级域名也够蛋疼的,正好最近在学正则表达式,权当练手了 0x 00 代码 # ...

  2. oracle中的日期加减法

    --加法 ) from dual; --加1年 ) from dual; --加1月 ,'yyyy-mm-dd HH24:MI:SS') from dual; --加1星期 ,'yyyy-mm-dd ...

  3. 哈希集合——hashSet

    /**     哈希集合特点:存取顺序不确定,同一个哈希值的位置可以存放多个元素,                   哈希集合存放元素的时候是先判断哈希地址值:hashCode()是否相同,如果不同 ...

  4. 【HDOJ】4403 A very hard Aoshu problem

    HASH+暴力. /* 4403 */ #include <iostream> #include <cstdio> #include <cstring> #incl ...

  5. Sum Root to Leaf Numbers——LeetCode

    Given a binary tree containing digits from 0-9 only, each root-to-leaf path could represent a number ...

  6. Pascal's Triangle II —LeetCode

    Given an index k, return the kth row of the Pascal's triangle. For example, given k = 3,Return [1,3, ...

  7. HDU 4604 Deque 最长子序列

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4604 Deque Time Limit: 4000/2000 MS (Java/Others)     ...

  8. AOJ 0121 广度优先搜索

    题意:7数码问题.在2×4的棋盘上,摆有7个棋子,每个棋子上标有1至7的某一数字,不同棋子上标的数字不相同.棋盘上还有一个空格(用0表示),与空格相邻(上下左右)的棋子可以移到空格中,该棋子原先位置成 ...

  9. 男装电商Bonobos融资5500万美元,计划IPO,全靠体验店战略 - 国外 - 快鲤鱼

    男装电商Bonobos融资5500万美元,计划IPO,全靠体验店战略 - 国外 - 快鲤鱼 男装电商Bonobos融资5500万美元,计划IPO,全靠体验店战略

  10. 总结XX网app中webapp常见的前端错误。

    在2016年12月至2017年1月,这一个月的时间内,我参与了易政网app中webapp前端项目的工作,下面将我在此次项目中犯的错误总结起来,以防下次再犯.也终于知道之前看的文章中的一段话所代表的意义 ...