Я устанавливаю приложение, которое читает информацию из видеофайла TS. Если размер файла составляет 10 КБ, он работает отлично, но когда файл намного длиннее (около 20,478 КБ), он замораживается, и я не могу получить никакой информации. Никаких файлов (), ни файлов (), ни чего-либо еще. Я попробовал почти все, но у меня нет идей.
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>
PHP-код: (leerBytes.php)
<?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";
}
}
}
?>
Я ожидаю получить размер файла или информацию из файла в массиве.
Я оставляю здесь несколько файлов в качестве примера: https://drive.google.com/drive/folders/1Hge4w8cIZBRm3TskABWcQZSoFFVUMx0-?usp=sharing