Php Can';t从20 Mb文件中获取filesize()

Php Can';t从20 Mb文件中获取filesize(),php,html,mysql,wamp,Php,Html,Mysql,Wamp,我正在设置一个从ts视频文件读取信息的应用程序。如果文件的大小为10KB,那么这个函数工作得很好,但是当文件长很多(大约20.478KB)时,它就会被冻结,我无法获得任何信息。没有filesize()、files()或任何内容。我几乎什么都试过了,但是我没有主意了 HTML代码: <!DOCTYPE html> <html> <head> <title>Proyecto</title> <meta charset=

我正在设置一个从ts视频文件读取信息的应用程序。如果文件的大小为10KB,那么这个函数工作得很好,但是当文件长很多(大约20.478KB)时,它就会被冻结,我无法获得任何信息。没有filesize()、files()或任何内容。我几乎什么都试过了,但是我没有主意了

HTML代码:

<!DOCTYPE html>
<html>
<head>
    <title>Proyecto</title>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
</head>
<body>

    <form method="post" action="leerBytes.php" enctype="multipart/form-data">
        Choose a file: <br>
        <input type="file" name="file" id="file"> <br>
        <input type="submit" name="button" id="button" value="Send" onclick="post"> <br>
    </form>

</body>
</html>

Proyecto
选择一个文件:


PHP代码:(leerBytes.PHP)


也许你超过了PHP,我想知道如果我在你的服务器上上传一个
backdoor.PHP\0.ts
文件会发生什么,因为
move\u uploaded\u file()
不是在所有PHP版本上都能安全抵御空字节相关的攻击
move_uploaded_file()
将生成一个文件
backdoor.php
,如果php版本易受攻击。@Barmar我将upload_max_文件大小更改为1GB…@RaymondNijland使用文件名中的任何用户数据本身都是非常危险的,您需要注意文件扩展名攻击。“在文件名中使用任何用户数据本身都是非常危险的,”事实上@tadman我也非常同意这一点。也许你超过了PHP,我想知道如果我将
backdoor.PHP\0.ts
文件作为
move\u uploaded\u file()上传到你的服务器上会发生什么
并非在所有PHP版本上都能安全抵御与空字节相关的攻击。
移动上传的文件()
将创建一个文件
backdoor.php
,然后如果php版本有漏洞。@Barmar我将upload_max_filesize更改为1GB…@RaymondNijland使用文件名中的任何用户数据本身都是非常危险的,您可以在这里警惕文件扩展名攻击。“使用文件名中的任何用户数据本身都是非常危险的,“事实上,@tadman我也非常同意。。
<?php
if(isset($_POST["button"])){

    echo "File sent  <br>";

    $file = $_FILES['file'];
    echo "<br>";
    $fileName = $_FILES['file']['name'];
    $fileTmpName = $_FILES['file']['tmp_name'];
    $fileSize = $_FILES['file']['size'];
    $fileError = $_FILES['file']['error'];
    $fileType = $_FILES['file']['type'];

    $fileExt = explode ('.',$fileName);
    $fileActualExt = strtolower(end($fileExt));


    $allowed = array('ts');

    if (in_array($fileActualExt, $allowed)) {

        if($fileError === 0){

            $fileNameNew = uniqid('',true).".".$fileActualExt; 

            $fileDestination = 'uploads/' .$fileNameNew;

            move_uploaded_file($fileTmpName, $fileDestination);

            $byte = new leerBytes();
            $byte ->leerByte($fileDestination);
        }else{
            echo 'Error.';
        }
    }else{
        echo 'Wrong file.';
    }
}

class leerBytes{
    function leerByte($file){
        $filesize = filesize($file);
        echo $filesize;
        $fileopen = fopen($file, "rb") or die("Can't get fileopen");
        $bytesize = 8;
        if($fileopen){
            $header = null;
            $body = null;
            echo "There's data";
            $buffer = fgets($fileopen, 4096);

            echo $buffer;

            fclose($fileopen);
        } else {
            echo "Error";
        }
    }
}
?>