使用不同的数据测量而不是KB

时间:2012-12-30 02:32:04

标签: php

我正在修补一些允许我将文件上传到我的网站的代码。我将在配置文件中设置一个选项,允许用户设置最大上载限制。目前这必须以千字节输入,我想知道是否可以将其输入MB?

if ((($_FILES["file"]["type"] == "image/gif")
|| ($_FILES["file"]["type"] == "image/jpeg")
|| ($_FILES["file"]["type"] == "image/png")
|| ($_FILES["file"]["type"] == "image/pjpeg"))
**&& ($_FILES["file"]["size"] < 2000000)** <---- Entered in Kilobytes, not MB.
&& in_array($extension, $allowedExts))

3 个答案:

答案 0 :(得分:1)

这样做:

$b = 1000000;
$kb = $b / 1024;
$mb = $kb / 1024;
if($_FILES['size']['size'] < $mb * 2) {
    // do something;
}

答案 1 :(得分:0)

最好定义一个将MB转换为字节的函数,即:

function MB($mb) {
   return $mb*1024*1024;
}

然后你可以进行比较:

($_FILES["file"]["size"] < MB(2000))

答案 2 :(得分:0)

<?php
    define('MB', 1024*1024);
    echo 10*MB;
?>

这是另一种方法。

此外,C中没有宏。因此,不可能像C,C ++那样#define这些东西。