$_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