La matriz $ _FILES en PHP está vacía
-
06-07-2019 - |
Pregunta
Estoy tratando de subir un archivo a través de un script PHP, pero mi matriz $ _FILES siempre está vacía. Mi entrada de datos $ _POST para el elemento de entrada HTML del archivo tiene el nombre de archivo ... Simplemente no se crea ningún archivo en mi sistema local.
He verificado el acceso de escritura a la carpeta temporal y la configuré explícitamente. Verifiqué phpinfo () para asegurarme de que las cargas de archivos estén habilitadas y que lo estén.
¿Qué podría estar evitando esto? ¿Mod_rewrite causaría algo?
¡Gracias!
Solución
Cuando tiene el tipo correcto (<form method="post" enctype="multipart/form-data">
), luego verifique la variable errno en $ _FILES, hay varias causas posibles para una falla. Lo típico es que se exceda MAX_FILE_SIZE.
http://php.net/manual/en/features. file-upload.errors.php
Desde PHP 4.2.0, PHP devuelve un código de error apropiado junto con el matriz de archivos El código de error puede ser encontrado en el segmento de error del archivo matriz que se crea durante el archivo subir por PHP. En otras palabras, el error se puede encontrar en $ _FILES ['userfile'] ['error'].
UPLOAD_ERR_OK Valor: 0; No hay error, el archivo cargado con éxito.
UPLOAD_ERR_INI_SIZE Valor: 1; los el archivo cargado excede el directiva upload_max_filesize en php.ini.
UPLOAD_ERR_FORM_SIZE Valor: 2; los el archivo cargado excede el Directiva MAX_FILE_SIZE que era especificado en el formulario HTML.
etc.
Otros consejos
¿Estás definiendo el enctype en tu formulario?
<form method="post" enctype="multipart/form-data">
No se cargará ningún archivo si no lo configura.
¿El formulario tiene el tipo correcto?
enctype="multipart/form-data"