martes, 5 de julio de 2011

Guardar Imagen en Base de Datos - Grails

Bienvenido GF

Crear un aplicación en Grails que guarde una imagen

Descripción:
App de grails que guarde imágenes

Nivel: Básico

1
1.1
abrir consola cmd
1.2
ir al directorio donde se quiera crear la aplicación: en windows para navegar por directorios en consola se usa el comando cd.

2
Crear aplicación: una vez en el directorio deseado: escribir el siguiente comando:
grails create-app ImgsGrailsApp
2.2
escribir en la consola para entrar a la aplicación: cd ImgsGrailsApp

3
Crear clase de dominio: escribir en consola:
grails create-domain-class imagen
3.2
editar el archivo creado localizado en:
ImgsGrailsApp\grails-app\domain\imgsgrailsapp\Imagen.groovy

opcionalmente puedes abrir una interfaz grafica donde se editan comandos groovy
escribir el comando:
grails console
3.3
el archivo quedaría de la siguiente forma:

class Imagen {
Date lastUpdated
Date dateCreated
byte[] screenshot

static constraints = {
screenshot(maxSize:1073741824)
}
}

4
crear el controlador: escribir en consola:
grails create-controller imagen
4.2
editar el archivo creado localizado en:
ImgsGrailsApp\grails-app\controllers\imgsgrailsapp\ImagenController.groovy
4.3
añadimos el siguiente codigo:


def scaffold = Imagen


def showImage = {
def imagen = Imagen.get( params.id )
response.outputStream << imagen.screenshot
response.outputStream.flush()
}

5
generamos las vistas: escribir el comando:
grails generate-views imagen
nos creara los archivos de edición, crear, listar y mostrar de la clase Imagen
localizados en:
ImgsGrailsApp\grails-app\views\imagen
5.1
abrimos el archivo:
ImgsGrailsApp\grails-app\views\imagen\list.gsp
en este archivo esta lo que se va a mostrar cuando se vea la lista de imágenes
-vamos a la linea donde esta
<g:each in="${imagenInstanceList}" status="i" var="imagenInstance"> <tr class="${(i % 2) == 0 ? 'even' : 'odd'}"> <td>
- a partir de aquí modificamos este td y quedaría de la siguiente manera

<g:link action="show" id="${imagenInstance.id}">${fieldValue(bean: imagenInstance, field: "id")}
  <img width="20%" height="20%" alt="Img" src="http://localhost:8080/ImgsGrailsApp/imagen/showImage/${imagenInstance.id}">
</g:link>
5.2

abrimos el archivo:
ImgsGrailsApp\grails-app\views\imagen\show.gsp
en este archivo esta lo que se va a mostrar cuando se vea una de imágen
-vamos a la linea donde esta



<ol class="property-list imagen">
<g:if test="${imagenInstance?.screenshot}">
<li class="fieldcontain">
<span id="screenshot-label" class="property-label"><g:message code="imagen.screenshot.label" default="Screenshot" /></span>                                        



-a partir de aqui añadimos el siguiente código, quedaría antes de cerrar el li

<g:link action="showImage" id="${imagenInstance.id}">${fieldValue(bean: imagenInstance, field: "id")}
  <img alt="img" src="http://localhost:8080/ImgsGrailsApp/imagen/showImage/${imagenInstance.id}">
</g:link>

6
probamos la aplicación: escribimos el comando:
grails run-app

Guía de Referencia GRAILS


Bienvenidos a GrailsFacilito


Navegando por la red me encontre con esté sitio interesante sobre Grails.

Descripción:
Documentación de Referencias del Framework Grails
Básicamente tiene desde como instar, comandos basicos, medios y avanzados de controladores, clases de dominio, plugins, servicios, etc.