我们有一个文件上传输入字段,用户上传一个zip文件。它添加到您的数据库中,文件大小以字节为单位输出。
现在我需要的是我需要动态地将其转换为mb,gb,tb ...这样文件就是人类可读的格式。
我们在线获得了一个Javascript代码进行转换。如果我们结合我们的php和javascript它只循环一次。
你能帮助我们吗?谢谢!PHP
<?php
$sql="SELECT * from version";
$records=mysql_query($sql);
while($emp=mysql_fetch_array($records)){
echo $emp['zipfile']."<br />";
$file = filesize($emp['zipfile']);
?>
的JavaScript
var x = <?php echo $file; ?>;
document.getElementById("foo").innerHTML = x
function formatSizeUnits(bytes){
if (bytes>=1073741824) {bytes=(bytes/1073741824).toFixed(2)+' GB';}
else if (bytes>=1048576) {bytes=(bytes/1048576).toFixed(2)+' MB';}
else if (bytes>=1024) {bytes=(bytes/1024).toFixed(2)+' KB';}
else if (bytes>1) {bytes=bytes+' bytes';}
else if (bytes==1) {bytes=bytes+' byte';}
else {bytes='0 byte';}
return bytes;
}
PHP循环关闭
<?php
}
?>
答案 0 :(得分:1)
您实际上可以使用PHP本身将文件大小转换为可读格式。这个功能是
function formatSizeUnits($bytes)
{
if ($bytes >= 1073741824)
{
$bytes = number_format($bytes / 1073741824, 2) . ' GB';
}
elseif ($bytes >= 1048576)
{
$bytes = number_format($bytes / 1048576, 2) . ' MB';
}
elseif ($bytes >= 1024)
{
$bytes = number_format($bytes / 1024, 2) . ' kB';
}
elseif ($bytes > 1)
{
$bytes = $bytes . ' bytes';
}
elseif ($bytes == 1)
{
$bytes = $bytes . ' byte';
}
else
{
$bytes = '0 bytes';
}
return $bytes;
}