Я заметил, что в зависимости от видео, которое я загружаю, иногда весь $_POST
а также $_FILES
массив будет пустым. Это странное явление, но я нашел его в нескольких видео. Ради тестирования видео, которые я использовал, все video/mp4
тип файла.
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Document</title>
</head>
<body>
<?php
var_dump($_POST);
var_dump($_FILES);
?>
<form method="post" action="" enctype="multipart/form-data">
<input type="file" name="attachment">
<input type="text" name="other">
<button type="submit" class="save" value="Save Changes">Upload that file!</button>
</form>
</body>
</html>
Выход хорошего видео
Array
(
[other] => testing string
)
Array
(
[attachment] => Array
(
[name] => Shasta.mp4
[type] => video/mp4
[tmp_name] => /private/var/tmp/phpAoDLKi
[error] => 0
[size] => 4688949
)
)
В то время как плохой запрос отображает следующее
Array
(
)
Array
(
)
Я изменил свой php.ini, чтобы разрешить загрузку файлов размером до 50 МБ, файлы, с которыми я тестирую, составляют 4,7 МБ и 10,2 МБ. Я полностью озадачен, в чем причина, имена видеофайлов Shasta.mp4
(хороший файл) и Bulova_Watches.mp4
(плохой файл).
При необходимости я могу загрузить файлы на сайт, чтобы другие могли их протестировать.
Проблема, с которой вы сталкиваетесь, связана с тем, что post_max_size
установлен в 8M
по умолчанию в вашем php.ini
,
Как ваш файл 10.4MB
вы сталкиваетесь со следующей ошибкой:
POST Content-Length из 10237675 байтов превышает ограничение 8388608
байт в Неизвестно
Потому что вы достигли этого предела.
Хитрость в исправлении этого — просто увеличить этот предел, изменив значение. Вы можете просто изменить его прямо в своем файле php.ini на любой другой, то есть 20M.
Или вы можете установить его через свой .htaccess
файл с:
php_value post_max_size 20M
php_value upload_max_filesize 20M
Примечание: я также добавил необходимые upload_max_filesize
что вам потребуется для больших файлов 🙂
Других решений пока нет …