Hola de nuevo,
Como decimos por aquí: "Mi gozo en un pozo".
Yo quería hacer un aporte que fuese útil para toda la comunidad y resulta que no funciona...
Si alguno de los verdaderos expertos se anima a corregir mi código, sería de agradecer, no creo que a los maestros les resulte nada difícil, yo ya no sé qué hacer... He estado haciendo más pruebas pero no consigo que funcione...
Le he añadido la funcionalidad de comprobar si el directorio de la ruta tiene permisos de escritura:
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']);
// Comprobar si la ruta tiene permisos para escribir
// Si no se puede escribir en ella, devolvemos error
return "Error: No se puede escribir en el directorio especificado";
// 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";
}
}
}
}
}
}
Pero sigue sin funcionar... Espero que me podáis corregir...