Eliminar un enlace simbólico

No sé si será vuestro caso, pero yo los uso día a día y me ayudan a no tener que recordar todas las rutas dónde accedo. Los enlaces simbólicos son un enlace a un fichero o directorio que se encuentra en una ruta diferente dentro de la estructura de directorios.

Existe otro tipo de enlace en los sistemas UNIX, el enlace duro o hard link, en donde el acceso es indistinguible del acceso real, y el borrado del mismo elimina su origen.

Personalmente, prefiero los enlaces simbólicos, básicamente por dos motivos: Es posible realizar enlaces simbólicos para apuntar a objetos que se encuentran en otros dispositivos o particiones; y que cualquier usuario puede crear un enlaces simbólicos. read more

Leer más » 3 Comentarios

Descargar ficheros sin usar enlaces con PHP

Cuando me refiero a no usar enlaces, me refiero a no usar enlaces al fichero en sí, por ejemplo: https://www.linuxhispano.net/logo.jpg sino a algo así como http://www.dominio.com/obtener_fichero.php?id_fichero=100.

¿Con qué idea podemos querer utilizar esto? Además de ocultar algo más de nuestra estructura interna, que siempre viene bien, es útil saber cómo descargar ficheros de este modo para tener un mayor control sobre el flujo, de forma que podamos comprobar rol de la persona que descarga, acceder a una base de datos para obtener el fichero de un campo BLOB o culaquier otro tratamiento que queramos hacer.

Para ello con PHP y suponiendo que tenemos el fichero ya accesible en disco (si está almacenado en una BBDD una solución podría ser crear un temporal mientras tanto), sólo tendremos que hacer lo siguiente:

header('Content-Description: File Transfer');
header("Content-Type: application/force-download");
header('Content-Disposition: attachment; filename='.basename($ruta));
header('Content-Transfer-Encoding: binary');
header('Content-Length: ' . obtenerTamanhoFichero($ruta));
readfile($ruta);

exit;

Utilizo una funcion obtenerTamanhoFichero que ahora os presentaré porque la función equivalente de PHP en ocasiones no funciona correctamente. Por cierto, el fichero en cuestión estará en la ruta indicada por la variable correspondiente, $ruta.

function obtenerTamanhoFichero ($url) { if (substr($url,0,4)=='http') { $x = array_change_key_case(get_headers($url, 1),CASE_LOWER); if ( strcasecmp($x[0], 'HTTP/1.1 200 OK') != 0 ) { $x = $x['content-length'][1]; } else { $x = $x['content-length']; } } else { $x = @filesize($url); } return $x; } read more

Leer más » 2 Comentarios

Meld, comparador de ficheros para Gnome

Probablemente en más de una ocasión habréis necesitado comparar dos ficheros de texto para encontrar, por ejemplo, pequeñas diferencias entre dos códigos en el que uno funciona y otro no. Como los IDE cada día están más extendidos y cada vez traen más funcionalidades, los programas que se dedican sólo a comparar dos ficheros son cada vez más bien partes o complementos de entornos o editores.

Sin embargo, sigue existiendo software específico de calidad como Meld. Meld es un comparador de ficheros para Gnome, implementado en Python, que nos permite compara de manera muy intuitiva gracias a la sintaxis coloreada, el resaltado de las diferencias o la posibilidad de comparar no dos, sino tres ficheros o incluso directorios completos (comparando pares de ficheros). read more

Leer más » 7 Comentarios