Relay es un servicio que podemos instalar en nuestro propio servidor y que nos permitirá de una manera cómoda y fácil tener un administrador de archivos y directorios. Sus características principales son:
Drag and drop de archivos y directorios.
Estructura de carga de archivos dinámica.
Barra de progreso de subida.
Visualización de miniaturas.
Múltiples usuarios y cuentas.
Los requerimientos de sistema son los siguientes:
PHP version 4 o superior.
MySQL version 4 o superior.
Perl 5.8.0 (para mostrar el progreso de subida)
Apache 2.0
En la web de Relay podemos ver una demo de la aplicación.
A veces, necesitamos comprobar si se una petición se ha realizado mediante AJAX. El siguiente código permite conocer de una forma sencilla su una petición ha sido realizada mediante AJAX o no.
Con la proliferación de AJAX en las webs han venido apareciendo toda una serie de gráficos animados para
informar que una petición está siendo procesada. Estos siete generadores te pueden resultar de utilidad para
crear tu gráfico personalizado de espera.
AIE (Ajax Image Editor) es una interesante aplicación para manipular imágenes online. La aplicación es gratuita, distribuida bajo una licencia GPL, por lo que la podremos incluir como una parte de nuestros desarrollos web. La aplicación está desarrollada utilizando Ext JS, ImageMagick y PHP. Entre sus características principales podemos destacar:
- Redimensionamiento de imágenes.
- Recorte de imágenes.
- Rotación y volteo.
- Aplicación de filtros.
- Herramienta de Texto para añadir textos a las imágenes.
- Aplicación de marcas de agua.
En la web oficial indica que funciona tanto para Firefox como para Internet Explorer. Desconozco si en otros navegadores la aplicación no funciona correctamente o simplemente es que no ha sido testada en los mismos.
jQuery ofrece bastantes funcionalidades Ajax que nos pueden facilitar mucho la tarea de enviar y recoger peticiones asíncronas
al servidor. Quizá la sentencia más
simple de JQuery para cargar contenido mediante Ajax es load(). Este post trata de ofrecer una explicación sencilla de este
comando, así como de unos cuantos ejemplos sencillos pero representativos de su uso.
Sintaxis:
load(url,parametros,callback)
Inicia una solicitud Ajax a la URL especificada con parámetros opcionales. Se puede especificar una función
de callback que puede ser invocada cuando la solicitud se completa. El texto de respuesta reemplaza el contenido de todos
los elementos coincidentes.
Argumentos:
url: La URL a la que la solicitud es enviada.
parámetros: Un objeto cuyas propiedades son serializadas en una serie
de parámetros codificados correctamente
y que se pasan a la solicitud. Se utiliza si se especifica, que la petición se hace utilizando el método POST.
Se omite si se utiliza el método GET.
callback: Una función invocada después de que la solicitud ha sido procesada.
Por ejemplo
$("#contenido").load("archivo.html");
Cargaría el contenido de "archivo.html" en el div "contenido". Un ejemplo un poco más elaborado y completo podría ser
el siguiente:
Aunque fácil de usar, este comando tiene algunos matices importantes. Por ejemplo, cuando se alimenta el argumento "parámetros" la
solicitud se realiza mediante el método HTTP POST, de lo contrario, se realiza mediante una petición GET. Si
queremos realizar una solicitud GET con los parámetros, podemos incluirlos en la URL. En este último caso deberemos
asegurarnos de que la url esté correctamente codificada.
En el siguiente ejemplo utilizamos el valor del atributo "value" de tres botones para pasarle a un archivo .php
la acción que desearíamos ejecutar. El archivo que invoca mediante Ajax el archivo .php sería:
<?php
if($_POST['acc']=='EDITAR'){
// ACCIONES DE EDICION
echo 'LA ACCION SOLICITADA ES EDITAR';
}elseif($_POST['acc']=='NUEVO'){
// ACCIONES DE CREACION
echo 'LA ACCION SOLICITADA ES NUEVO';
}else{
// ACCIONES DE ELIMINACION
echo 'LA ACCION SOLICITADA ES BORRAR';
}
?>
Y el archivo "solicitud.php" se encargaría de recoger los parámetros por POST y asignar las acciones pertinentes:
<?php
if($_POST['acc']=='EDITAR'){
// ACCIONES DE EDICION
echo 'LA ACCION SOLICITADA ES EDITAR';
}elseif($_POST['acc']=='NUEVO'){
// ACCIONES DE CREACION
echo 'LA ACCION SOLICITADA ES NUEVO';
}else{
// ACCIONES DE ELIMINACION
echo 'LA ACCION SOLICITADA ES BORRAR';
}
?>
La mayoría de veces utilizaremos el comando load() para inyectar el contenido completo de la respuesta, pero puede
ocurrir que deseemos filtrar la respuesta. jQuery nos permite especificar un selector en la URL para filtrar los elementos
que van a ser inyectados. Por ejemplo:
$('#contenido').load('recurso.html #bloque_1')
La respuesta contenida en el div "bloque_1" del fichero "recurso.html", será cargada en el
div "contenido".
En el siguiente ejemplo se cargan unicamente los enlaces contenidos en el fichero "carga_filtrada.html".
Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum sed diam nonumy eirmod tempor invidunt ut labor. Stet clita kasd gubergren consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua