PHP 循环内的 Javascript 文件转换

标签 javascript php

我们有一个文件上传输入字段,用户可以在其中上传 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
    }
?>

最佳答案

您实际上可以使用 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;
}

关于PHP 循环内的 Javascript 文件转换,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38500694/

相关文章:

javascript - 如何使用 javascript 创建监听器

javascript - 检测选择了什么表单自动完成值

javascript - 在 php 中使用 echo 运行 javascript

php - 从 PHP 中加载 .sql 文件

PHP数组匹配MYSQL字符串

php - Yii 将数组保存到模型属性

php - Mamp - 让 Gzip 工作

javascript - 刷新 jQuery Mobile 翻转开关

javascript - jQuery 切换 3 Div

c# - 在 JavaScript 函数中访问 C# 方法