filesize的全方位用法介绍(getFileSize)

一、什么是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等编程语言手动转换

Published by

风君子

独自遨游何稽首 揭天掀地慰生平