package com.css.common.util;

import java.text.SimpleDateFormat;
import java.util.Date;

public class FileUploadUtil {

/**
  * 生成文件名
  *
  * @param sp1
  *            分隔前字符串
  * @param separator
  *            分隔符号
  * @param sp2
  *            分隔后字符串
  * @param fileExt
  *            文件扩展名
  * @return
  */
 public static String createFileName(String sp1, String separator,
   String sp2, String fileExt) {
  StringBuffer fileName = new StringBuffer();
  if (sp1 != null && !"".equals(sp1)) {
   fileName.append(sp1);
  }
  if (separator != null && !"".equals(separator)) {
   fileName.append(separator);
  }
  if (sp2 != null && !"".equals(sp2)) {
   fileName.append(sp2);
  }
  fileName.append(".");
  fileName.append(fileExt);
  return fileName.toString();
 }

/**
  * 创建唯一文件名
  *
  * @return
  */
 public static String createFileName() {
  String dfile = getCurrentYMR("");
  String unique = createUnique();
  return dfile + "_" + unique;
 }

/**
  * 创建唯一标识<br/> 描述:6位数 = 4位日期 + 2位随机
  *
  * @return
  */
 public static String createUnique() {
  String curTimeStr = String.valueOf(System.currentTimeMillis());// 获取系统当前时间
  curTimeStr = curTimeStr.substring(curTimeStr.length() - 4, curTimeStr
    .length());// 取系统的后4位数
  int randomNum = new java.util.Random().nextInt(90) + 10;// 随机生成2位数
  String randomNumStr = String.valueOf(randomNum);// 取系统的后4位数 + 随机生成2位数
  return curTimeStr + randomNumStr;
 }

/**
  * 创建文件名
  *
  * @param imgSize
  *            图片大小
  * @param fileExt
  *            文件扩展名
  * @return
  */
 public static String createFileName(String imgSize, String fileExt) {
  String dfile = getCurrentYMR("");
  String unique = createUnique();
  return createFileName(dfile + "_" + unique, "_", imgSize, fileExt);
 }

/**
  * 得到当前日期
  *
  * @param separator
  *            分隔符号
  * @return
  */
 public static String getCurrentYMR(String separator) {
  String s = separator == null ? "" : separator;
  String dfile = getYear() + s + getMonth() + s + getDay();
  return dfile;
 }

/**
  * 年
  *
  * @return
  */
 public static String getYear() {
  Date date = new Date();
  return convertDateToString("yyyy", date);
 }

/**
  * 月
  *
  * @return
  */
 public static String getMonth() {
  Date date = new Date();
  return convertDateToString("MM", date);
 }

/**
  * 日
  *
  * @return
  */
 public static String getDay() {
  Date date = new Date();
  return convertDateToString("dd", date);
 }

/**
  * 日期转换
  *
  * @param aMask
  * @param aDate
  * @return
  */
 public static String convertDateToString(String aMask, Date aDate) {
  SimpleDateFormat df = null;
  try {
   df = new SimpleDateFormat(aMask);
  } catch (Exception ex) {
   ex.printStackTrace();
  }
  return df.format(aDate);
 }

}

FileUploadUtil相关推荐

  1. fastdfs上传文件资料(PDF,视频,图片,FileCaseUtil,FileUploadUtil)并生成缩略图

    javacv里面有类型转换器的使用,对视频图片的处理工具等等 一.UML图 二.代码 pom依赖 <!-- fastdfs--><dependency><groupId& ...

  2. spring boot 文件上传工具类(bug 已修改)

    以前的文件上传都是之前前辈写的,现在自己来写一个,大家可以看看,有什么问题可以在评论中提出来. 写的这个文件上传是在spring boot 2.0中测试的,测试了,可以正常上传,下面贴代码 第一步:引 ...

  3. Java项目:茶叶售卖商城系统(java+SSM+JSP+EasyUi+mysql)

    源码获取:博客首页 "资源" 里下载! 这是一个应用SSM框架的项目,前端页面整洁清晰.该系统有两个角色,一个是普通用户,另一个是管理员. 普通用户具有注册.登录.查看商品.添加购 ...

  4. 楼盘历史价格管理导入功能优化

    备注:红色为重点关注的内容,绿色表示修改的内容 1.原始代码 ToolHistoricalPriceControl.java @RequestMapping("fileImport" ...

  5. Spring加载properties文件的两种方式

    2019独角兽企业重金招聘Python工程师标准>>> 在项目中如果有些参数经常需要修改,或者后期可能需要修改,那我们最好把这些参数放到properties文件中,源代码中读取pro ...

  6. Java实现上传文件到指定服务器指定目录

    前言需求 使用freemarker生成的静态文件,统一存储在某个服务器上.本来一开始打算使用ftp实现的,奈何老连接不上,改用jsch.毕竟有现成的就很舒服,在此介绍给大家. 具体实现 引入的pom ...

  7. SpringBoot中在普通类里面加载Spring容器中的类

    前言 在我们的工作中,经常会遇到需要在普通类中使用放在Spring容器中的类的情况.最常见的情况大概就是有一个类他的属性的是通过spring的配置文件读取的.这样这个类必然要交给Spring容器进行管 ...

  8. Spring mvc,uploadifive 文件上传实践(转自:https://segmentfault.com/a/1190000004503262)

     1.前台页面: 引入js和css 全选复制放进笔记 <link type="text/css" rel="stylesheet" href=&quo ...

  9. 28个Java常用的工具类

    源码下载:http://pan.baidu.com/s/1pJLSczD Base64.java Base64DecodingException.java CConst.java CharTools. ...

最新文章

  1. Symbian 编程总结导读
  2. Scala数组遍历:使用for和foreach
  3. 01.elasticsearch metric aggregation 查询
  4. why settype transport is not available in AG9 but works in AG3
  5. 寂寞的hasLayout
  6. tab栏切换制作(原生js版本)
  7. uushare.com 增加了小组(群)功能
  8. git branch看不到分支_这份Git 日常操作清单,你都用到了吗
  9. 工作流_JBPM之Helloword
  10. VBScript 教程
  11. 云打码案例 python
  12. woocommerce 下单失败也会清空购物车
  13. kali安装wps办公软件
  14. 5G无线定位技术标准化及发展趋势
  15. Nginx+keepalived 高可用双机热备(主从模式/双主模式)
  16. 完整技术帖,看美剧学英语之法
  17. 还有人在质疑数据挖掘是泡沫吗?千万不要叶公好龙
  18. 2016全球大数据战略版图剖析(6):应用篇下
  19. 唯品会获得商品详情 API接口
  20. sql查询语句--wher后不能放聚集函数的解决办法

热门文章

  1. VTK:标记数据映射器用法实战
  2. boost::mpl模块实现lower_bound相关的测试程序
  3. boost::math模块计算艾里函数的零点的测试程序
  4. boost::histogram::accumulators::count用法的测试程序
  5. boost::contract模块实现private protected的测试程序
  6. ITK:用常量填充图像
  7. DCMTK:用于管理常见细分特定类型的类
  8. DCMTK:测试DcmSCP和DcmSCU类
  9. VTK:Points之DensifyPoints
  10. VTK:Filtering之CombinePolyData