$_FILES esta variable identificara el archivo temporal subido al servidor y contiene la información del mismo. en este post veremos alguna información que podemos obtener de este array tanto del mismo archivo como del proceso “upload”.
- $_FILES[‘archivo’][‘size’]: tamaño en bytes del archivo o imagen recibido
- $_FILES[‘archivo’][‘type’]: tipo mime del archivo, por ejemplo image/gif
- $_FILES[‘archivo’][‘name’]: nombre original del archivo
- $_FILES[‘archivo’][‘tmp_name’]: nombre del archivo temporal que se utiliza para almacenar en el servidor el archivo recibido
Si imprimiéramos el array “$_FILES[file1]” su estructura seria la siguiente:
Array ( [archivo] => Array ( [name] => MyFile.txt [type] => text/plain [tmp_name] => /tmp/php/php1h4j1o [error] => 0 [size] => 123 (el tamaño en bytes) ) )
Con una simple función podemos obtener la extensión
$extencion = $this->get_extension($_FILES['archivo']['name']); function get_extension($str) { return end(explode(".", $str)); } O bien
$extension = end(explode(".", $_FILES['archivo']['name']));
Si deseas mostrar un mensaje apropiado al error encontrado sería algo así:
function FileUploadErrorMsg($error_code) { switch ($error_code) { case UPLOAD_ERR_INI_SIZE: return "El archivo es más grande que lo permitido por el Servidor."; case UPLOAD_ERR_FORM_SIZE: return "El archivo subido es demasiado grande."; case UPLOAD_ERR_PARTIAL: return "El archivo subido no se terminó de cargar (probablemente cancelado por el usuario)."; case UPLOAD_ERR_NO_FILE: return "No se subió ningún archivo"; case UPLOAD_ERR_NO_TMP_DIR: return "Error del servidor: Falta el directorio temporal."; case UPLOAD_ERR_CANT_WRITE: return "Error del servidor: Error de escritura en disco"; case UPLOAD_ERR_EXTENSION: return "Error del servidor: Subida detenida por la extención"; default: return "Error del servidor: ".$error_code; } } if ($_FILES["archivo"]["error"] > 0) { echo FileUploadErrorMsg($_FILES["archivo"]["error"]); exit; } else { echo "Archivo cargado correctamente :)."; }
Subiendo archivos con KumbiaPHP Parte 1 – 3