java 文件上传 大小_java 上传文件大小转换为 GB/MB/KB/B

该博客介绍了Java中实现文件大小转换的方法,包括从字节到KB、MB、GB的转换,并提供了获取文件或目录总大小的工具类。此外,还讨论了项目中针对大文件上传的需求,如设置10GB的上传限制,以及前端和后端的相应调整,包括Web.Config配置以限制上传文件大小。
摘要由CSDN通过智能技术生成

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.效果图

caee93977e77e3d4322c024fb1ba537b.png

cd37ec800ef2cbc009cdd055fba4ccf7.png

java上传文件大小转换(字节转kb&sol;mb&sol;gb)

/** * 字节转kb/mb/gb * @param size * @return */ public String getPrintSize(long size) { //如果字节数少于1024,则 ...

java上传大文件解决方案

需求:项目要支持大文件上传功能,经过讨论,初步将文件上传大小控制在10G内,因此自己需要在项目中进行文件上传部分的调整和配置,自己将大小都以10G来进行限制. 第一步: 前端修改 由于项目使用的是BJ ...

java上传视频文件

需求:项目要支持大文件上传功能,经过讨论,初步将文件上传大小控制在500M内,因此自己需要在项目中进行文件上传部分的调整和配置,自己将大小都以501M来进行限制. 第一步: 前端修改 由于项目使用的是 ...

解决ASP&period;NET上传文件大小限制

第一种方法,主要适用于IIS6.0版本 一.修改配置Web.Config文件中的httpRuntime节点对于asp.net,默认只允许上传4M文件,增加如下配置,一般可以自定义最大文件大小.一.修改 ...

兼容各浏览器的js判断上传文件大小

由于项目需要,在网上找了一个JS判断上传文件大小的程序,经测试兼容IE6-,Firefox10,Opera11.,safari5.,chrome17 &lt ...

Web&period;Config文件配置之限制上传文件大小和时间

在邮件发送系统或者其他一些传送文件的网站中,用户传送文件的大小是有限制的,因为这样不但可以节省服务器的空间,还可以提高传送文件的速度.下面介绍如何在Web.Config文件中配置限制上传文件大小与时间 ...

asp&period;net--解决上传文件大小限制

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值