====== Tiny File Manager ====== [[..:aplicaciones_web|Aplicación web]] para la gestión de archivos programada en [[informatica:programacion:php|PHP]]. En un único fichero y compatible desde [[informatica:programacion:php|PHP]] 5.5. * [[https://tinyfilemanager.github.io/|Web]] * [[https://github.com/prasathmani/tinyfilemanager|Repositorio de código]] * [[https://tinyfilemanager.github.io/demo/|Demo]] {{ https://tinyfilemanager.github.io/img/bg-showcase-1.jpg |}} ===== Características ===== * Open source * Ligero * Sin dependencias * Creación, edición, copia, renombrar y descargar ficheros de manera sencilla. * Soporte de resaltado de sintaxis para la edición de código fuente. * Subida múltiple de ficheros * Gestión de cuentas de usuario. Cada usuario puede tener su propio directorio y permisos de accesos. * Buscador por nombre, tipo, extensión... * Creación de ficheros comprimidos. * Extracción online de ficheros comprimidos * Diseño adaptable (basado en [[informatica:diseno_web:css:bootstrap|Bootstrap]]) * Traducido a más de 32 idiomas ===== Instalación ===== ==== Manual ==== Colocar el fichero ''tinyfilemanager.php'' en cualquier directorio que sirva el servidor web. ==== Docker ==== Ejemplo de fichero ''docker-compose.yml'' para emplear con [[informatica:sistemas_operativos:virtualizacion:docker:docker_compose|Docker Compose]]: --- version: '3.3' services: tinyfilemanager: image: 'tinyfilemanager/tinyfilemanager:master' container_name: tinyfilemanager ports: - '80:80' volumes: - './data:/var/www/html/data' restart: always ===== Adaptación para PHP 5.4 ===== Tiny File Manager hace uso de las siguientes funciones que no aparecieron hasta la versión 5.5 de PHP: * [[https://www.php.net/manual/en/function.random-bytes.php|random_bytes]] * [[https://www.php.net/manual/en/function.password-verify|password_verify]] * [[https://www.php.net/manual/en/function.password-hash|password_hash]] * [[https://www.php.net/manual/en/function.hash-equals|hash_equals]] Para poder usarlo en una versión anterior: * [[https://github.com/paragonie/random_compat|random_compat]]: compatibilidad PHP 5.x para las funciones ''random_bytes()'' y ''random_int()'' * [[https://github.com/ircmaxell/password_compat|password_compact]]: compatibilidad PHP 5.3.7 para las funciones ''password_*()'' Y la creación de la función ''hash_equals'': if(!function_exists('hash_equals')) { function hash_equals($str1, $str2) { if(strlen($str1) != strlen($str2)) { return false; } else { $res = $str1 ^ $str2; $ret = 0; for($i = strlen($res) - 1; $i >= 0; $i--) $ret |= ord($res[$i]); return !$ret; } } } Estructura: tinyfilemanager.php lib/random.php lib/password.php lib/hash.php ===== Configuración ===== La configuración se hace desde el propio script o a través de un [[https://tinyfilemanager.github.io/config-sample.txt|fichero de configuración]] con las opciones más comunes. ==== Usuarios ==== Por defecto, vienen creados dos usuarios: **admin** y **user**. Las contraseñas son ''admin@123'' y ''12345'' respectivamente. Para generar el hash de la contraseña, podemos usar una aplicación web desarrollada por la misma gente de Tiny File Manager: [[https://tinyfilemanager.github.io/docs/pwd.html|PHP5 PASSWORD HASH GENERATOR]]. En el script de Tiny File Manager añadiríamos el usuario y el hash: $auth_users = array( 'pepito' => '$2y$10$Fg6Dz8oH9fPoZ2jJan5tZuv6Z4Kp7avtQ9bDfrdRntXtPeiMAZyGO' ); Otra opción sería guardar la contraseña en claro: $auth_users = array( 'pepito' => password_hash('12345', PASSWORD_DEFAULT) ); ==== Idioma ==== La descarga de Tiny File Manager incluye un fichero llamado ''translation.json'' (también accesible desde [[https://github.com/prasathmani/tinyfilemanager/blob/master/translation.json|aquí]]). Si situamos dicho fichero en el mismo directorio que Tiny File Manager, podremos seleccionar el idioma desde el propio Tiny File Manager.