Pregunta Los datos de $ _FILES y $ _POST están vacíos al cargar ciertos archivos


Me he dado cuenta de que, según el video, lo subo a veces todo $_POST y $_FILES array estará vacío. Esto es algo raro, pero lo he encontrado en algunos videos. Por el bien de probar los videos que estaba usando son todos video/mp4 Tipo de archivo.

<!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>

La salida de un buen video es

Array
(
    [other] => testing string
)
Array
(
    [attachment] => Array
        (
            [name] => Shasta.mp4
            [type] => video/mp4
            [tmp_name] => /private/var/tmp/phpAoDLKi
            [error] => 0
            [size] => 4688949
        )

)

Mientras que una mala solicitud muestra lo siguiente

Array
(
)
Array
(
)

He modificado mi php.ini para permitir cargas de archivos del tamaño de 50 mb, los archivos que estoy probando son 4.7 mb y 10.2 mb. Estoy completamente confundido sobre cuál es la causa, los nombres de los archivos de video son Shasta.mp4 (buen archivo) y Bulova_Watches.mp4 (archivo mal).

Si es necesario, puedo cargar los archivos en un sitio para que otros los prueben.


5
2018-04-24 00:05


origen


Respuestas:


El problema al que te enfrentas se debe a que post_max_size se establece en 8M como predeterminado en tu php.ini. Como tu archivo es 10.4MB te encuentras con el siguiente error:

POST Content-Length de 10237675 bytes excede el límite de 8388608   bytes en desconocido

Porque has llegado a ese límite. El truco para arreglar esto es simplemente subir ese límite cambiando el valor. Simplemente puede cambiarlo directamente en su archivo php.ini a lo que desee, es decir, 20M.

O puedes configurarlo a través de tu .htaccess archivo con:

php_value post_max_size 20M
php_value upload_max_filesize 20M

Nota: También he añadido el requerido upload_max_filesize que necesitarás para los archivos más grandes :)


6
2018-04-24 01:43