java 上传文件大小转换为 GB/MB/KB/B
1.工具类 package cn.cmodes.common.utils;
import java.io.File;
import java.io.FileInputStream;
import java.text.DecimalFormat; public class FileSizeUtil {
private static final String TAG=FileSizeUtil.class.getSimpleName(); public static final int SIZETYPE_B = ;//获取文件大小单位为B的double值
public static final int SIZETYPE_KB = ;//获取文件大小单位为KB的double值
public static final int SIZETYPE_MB = ;//获取文件大小单位为MB的double值
public static final int SIZETYPE_GB = ;//获取文件大小单位为GB的double值 /**
* 获取文件指定文件的指定单位的大小
*
* @param filePath 文件路径
* @param sizeType 获取大小的类型1为B、2为KB、3为MB、4为GB
* @return double值的大小
*/
public static double getFileOrFilesSize(String filePath, int sizeType) {
File file = new File(filePath);
long blockSize = ;
try {
if (file.isDirectory()) {
blockSize = getFileSizes(file);
} else {
blockSize = getFileSize(file);
}
} catch (Exception e) {
e.printStackTrace();
}
return FormetFileSize(blockSize, sizeType);
} /**
* 调用此方法自动计算指定文件或指定文件夹的大小
*
* @param filePath 文件路径
* @return 计算好的带B、KB、MB、GB的字符串
*/
public static String getAutoFileOrFilesSize(String filePath) {
File file = new File(filePath);
long blockSize = ;
try {
if (file.isDirectory()) {
blockSize = getFileSizes(file);
} else {
blockSize = getFileSize(file);
}
} catch (Exception e) {
e.printStackTrace();
}
return formatFileSize(blockSize);
} /**
* 获取指定文件大小
*/
private static long getFileSize(File file) throws Exception {
long size = ;
if (file.exists()) {
FileInputStream fis = null;
fis = new FileInputStream(file);
size = fis.available();
} else {
file.createNewFile();
}
return size;
} /**
* 获取指定文件夹
*/
private static long getFileSizes(File f) throws Exception {
long size = ;
File flist[] = f.listFiles();
assert flist != null;
for (File file : flist) {
if (file.isDirectory()) {
size = size + getFileSizes(file);
} else {
size = size + getFileSize(file);
}
}
return size;
} /**
* 转换文件大小
*/
public static String formatFileSize(long fileS) {
DecimalFormat df = new DecimalFormat("#.00");
String fileSizeString = "";
String wrongSize = "0B";
if (fileS == ) {
return wrongSize;
}
if (fileS < ) {
fileSizeString = df.format((double) fileS) + "B";
} else if (fileS < ) {
fileSizeString = df.format((double) fileS / ) + "KB";
} else if (fileS < ) {
fileSizeString = df.format((double) fileS / ) + "MB";
} else {
fileSizeString = df.format((double) fileS / ) + "GB";
}
return fileSizeString;
} /**
* 转换文件大小,指定转换的类型
*/
private static double FormetFileSize(long fileS, int sizeType) {
DecimalFormat df = new DecimalFormat("#.00");
double fileSizeLong = ;
switch (sizeType) {
case SIZETYPE_B:
fileSizeLong = Double.valueOf(df.format((double) fileS));
break;
case SIZETYPE_KB:
fileSizeLong = Double.valueOf(df.format((double) fileS / ));
break;
case SIZETYPE_MB:
fileSizeLong = Double.valueOf(df.format((double) fileS / ));
break;
case SIZETYPE_GB:
fileSizeLong = Double.valueOf(df.format((double) fileS / ));
break;
default:
break;
}
return fileSizeLong;
}
}
2.使用
/**
* 新增多媒体-图片
*
* @param mediaphoto 多媒体-图片信息
* @return 结果
*/
@Override
@Transactional
public int insertMediaphoto(Mediaphoto mediaphoto) {
if (StringUtils.isBlank(mediaphoto.getId())) {
mediaphoto.setId(IdGen.uuid());
}
mediaphoto.setCreateTime(new Date());
mediaphoto.setFileSize(fileService.formatFileSize(mediaphoto.getFileName()));
int i = mediaphotoMapper.insertMediaphoto(mediaphoto);
searchService.UpdateResourceEs(mediaphoto.getDocumentId());
return i;
}
3.效果图
java 上传文件大小转换为 GB/MB/KB/B的更多相关文章
- java上传文件大小转换(字节转kb/mb/gb)
/** * 字节转kb/mb/gb * @param size * @return */ public String getPrintSize(long size) { //如果字节数少于1024,则 ...
- java上传大文件解决方案
需求:项目要支持大文件上传功能,经过讨论,初步将文件上传大小控制在10G内,因此自己需要在项目中进行文件上传部分的调整和配置,自己将大小都以10G来进行限制. 第一步: 前端修改 由于项目使用的是BJ ...
- java上传视频文件
需求:项目要支持大文件上传功能,经过讨论,初步将文件上传大小控制在500M内,因此自己需要在项目中进行文件上传部分的调整和配置,自己将大小都以501M来进行限制. 第一步: 前端修改 由于项目使用的是 ...
- 解决ASP.NET上传文件大小限制
第一种方法,主要适用于IIS6.0版本 一.修改配置Web.Config文件中的httpRuntime节点对于asp.net,默认只允许上传4M文件,增加如下配置,一般可以自定义最大文件大小.一.修改 ...
- 兼容各浏览器的js判断上传文件大小
由于项目需要,在网上找了一个JS判断上传文件大小的程序,经测试兼容IE6-,Firefox10,Opera11.,safari5.,chrome17 <!DOCTYPE html> < ...
- Web.Config文件配置之限制上传文件大小和时间
在邮件发送系统或者其他一些传送文件的网站中,用户传送文件的大小是有限制的,因为这样不但可以节省服务器的空间,还可以提高传送文件的速度.下面介绍如何在Web.Config文件中配置限制上传文件大小与时间 ...
- asp.net--解决上传文件大小限制
原文地址 第一种方法,主要适用于IIS6.0版本 一.修改配置Web.Config文件中的httpRuntime节点 对于asp.net,默认只允许上传4M文件,增加如下配置,一般可以自定义最大文件大 ...
- 解决ASP.NET上传文件大小限制------(转载人家的博客很好用,略作修改)
解决ASP.NET上传文件大小限制 (2012-06-26 15:18:01) 转载▼ 标签: it 第一种方法,主要适用于IIS6.0版本 一.修改配置Web.Config文件中的httpRun ...
- JAVA上传与下载
java下载指定地址的文件 package com.test; import java.io.FileNotFoundException; import java.io.FileOutputStrea ...
随机推荐
- ROS Learning-032 (提高篇-010 Launch)Launch 深入研究 --- (启动文件编程)ROS 的 XML语法简介
ROS 提高篇 之 Launch 深入研究 - 01 - 启动文件的编程 - ROS 的 XML语法简介 我使用的虚拟机软件:VMware Workstation 11 使用的Ubuntu系统:Ubu ...
- CTE 中字符串拼接
1>cte语法 1.1>基础语句和递归语句中必须有字段 1.2>最后只能跟一条查询语句 1.3>字符串拼接,要将拼接的字段转成字符串类型,cast(fieldName as n ...
- code1043 方格取数
第一次走用dfs枚举每种情况,第二次走用dp求剩下的最大值 设一个点集q用来保存有价值的点,排序,在最后加一个终点:x=m+1,y=m+1,v=0 //m是矩阵长宽 因为v=0的点是没有意义的,所以 ...
- cakephp中sql查询between
$trading_list = $this->Trading->find('all', array('conditions' => array('buy_time BETWEEN ? ...
- ceph中pool的管理
1.创建pool 创建ceph pool的命令如下,它的参数包括pool名字.PG和PGP的数量. 若少于5个OSD, 设置pg_num为128. 5~10个OSD,设置pg_num为512. 10~ ...
- 关于innerHTML以及html2dom
使用innerHTML或者insertAdjacentHTML 创建元素的时候能给我们带来很大的方便,为domNode 赋予innerHTML 属性,在插入大量的HTML的时候,使用innerHTML ...
- 深入理解java虚拟机(十二) Java 语法糖背后的真相
语法糖(Syntactic Sugar),也叫糖衣语法,是英国计算机科学家彼得·约翰·兰达(Peter J. Landin)发明的一个术语.指的是,在计算机语言中添加某种语法,这些语法糖虽然不会对语言 ...
- 5、Semantic-UI之基础按钮样式
5.1 基础按钮样式 在Semantic-UI中定义了很多的按钮样式,可以通过class="ui button"来指定,也可以在class中指定颜色. 示例:定义基础按钮样式 ...
- python二维码操作:QRCode和MyQR入门
1.QRCode QRCode最简单的使用 import qrcode qrcode.make("第一个二维码").get_image().show() 根据文本生成二维码并且直接 ...
- js 格式化时间
//格式化时间 function time_format(time) { return new Date(parseInt(time) * 1000).toLocaleString().replace ...