一、什么是filesize
1、filesize是常见于计算机领域中的一个概念,表示文件的大小
2、其单位一般是字节(Byte),也有KB,MB,GB等常见的单位
二、如何获得filesize
1、在PHP中,可以通过filesize()函数获得文件大小
<?php
$filesize = filesize('filename.txt');
echo '文件大小为:' . $filesize . '字节';
?>
2、在JavaScript中,可以通过XMLHttpRequest的response属性中获取到文件大小
var xhr = new XMLHttpRequest();
xhr.onreadystatechange = function() {
if (xhr.readyState === 4 && xhr.status === 200) {
var filesize = xhr.response.length;
console.log('文件大小为:' + filesize + '字节');
}
};
xhr.open('GET', 'filename.txt');
xhr.send();
三、常见用途
1、根据filesize来限制上传文件大小
<?php
$maxsize = 2 * 1024 * 1024; //最大2M
if ($_FILES['file']['error'] === UPLOAD_ERR_OK) {
if ($_FILES['file']['size'] > $maxsize) {
echo '上传文件不能大于2M';
} else {
move_uploaded_file($_FILES['file']['tmp_name'], 'uploads/' . $_FILES['file']['name']);
}
}
?>
2、根据filesize来判断下载文件大小
<?php
$filesize = filesize('filename.zip');
header('Content-Disposition: attachment; filename="filename.zip"');
header('Content-Length: ' . $filesize);
readfile('filename.zip');
?>
四、如何格式化filesize
1、使用PHP代码手动转换
<?php
$filesize = 12345678;
if ($filesize < 1024) {
echo $filesize . 'B';
} elseif ($filesize < 1024 * 1024) {
echo round($filesize / 1024, 2) . 'KB';
} elseif ($filesize < 1024 * 1024 * 1024) {
echo round($filesize / (1024 * 1024), 2) . 'MB';
} else {
echo round($filesize / (1024 * 1024 * 1024), 2) . 'GB';
}
?>
2、使用JavaScript代码手动转换
function formatFilesize(filesize) {
if (filesize < 1024) {
return filesize + 'B';
} else if (filesize < 1024 * 1024) {
return Math.round(filesize / 1024 * 100) / 100 + 'KB';
} else if (filesize < 1024 * 1024 * 1024) {
return Math.round(filesize / (1024 * 1024) * 100) / 100 + 'MB';
} else {
return Math.round(filesize / (1024 * 1024 * 1024) * 100) / 100 + 'GB';
}
}
console.log(formatFilesize(12345678));
五、小结
1、filesize是计算机领域中常见的概念,常用单位为字节、KB、MB、GB
2、常见用途有限制上传文件大小、判断下载文件大小等
3、如何格式化filesize可以使用PHP或JavaScript等编程语言手动转换
