Hola a tod@s,
Mi intención era hacer un aporte de una función para subir archivos al servidor, pudiendo añadir después la programación oportuna para agregar los datos a una base de datos, el caso es que, aparentemente veo todo bien, pero no funciona y no valida su existe ya el archivo o no, bueno, aquí va el código, se aceptan todo tipo de sugerencias para que funcione y dejar un buen aporte para quien lo pueda necesitar:
Código PHP:
Ver originalfunction SubirArchivos($campo_archivo, $ruta, $size, $permitidos) {
// Función para subir archivos mediante PHP
// USO: SubirArchivos($campo_archivo, $ruta, $size, $permitidos);
// @param $campo_archivo = $_FILES['nombre_campo'];
// @param $ruta = "ruta_de_subida_del_archivo";
// @param $size = "tamaño máximo permitido en bytes"
// @param $permitidos = array(array con los tipos de archivos permitidos); (http://www.freeformatter.com/mime-types-list.html#mime-types-list)
// @return: Solo retorna en caso de error
// Obtener el tipo MIME del archivo enviado por el usuario
$finfo = new finfo(FILEINFO_MIME_TYPE);
$mime_usuario = $finfo->file($campo_archivo['tmp_name']);
// Contrastar los tipos MIME
$permitidos = in_array($mime_usuario, $permitidos); // Devolverá true o false if($permitidos == FALSE) {
// Si el archivo no está en la lista de permitidos, devolvemos error.
return "Error: El archivo enviado no se corresponde a un tipo permitido";
// Comprobar que el tamaño no excede el permitido
if ( $campo_archivo['size'] > $size ) {
return "Error: El archivo enviado es mayor de lo permitido";
// Si el archivo existe en la ruta, devolvemos error.
if ( file_exists($ruta.$campo_archivo['name']) == TRUE ) { return "Error: Ya existe ese archivo en la ruta definida";
// Si el archivo no se puede mover a su ruta, devolvemos error.
return "Error: Problema al subir el archivo";
}
}
}
}
}
Bueno, espero que con ayuda, podamos compartir esta función que considero muy útil por la cantidad de gente que necesita hacer esto.