Foros del Web » Programación para mayores de 30 ;) » Java »

Enviar una imagen a un servlet por POST.

Estas en el tema de Enviar una imagen a un servlet por POST. en el foro de Java en Foros del Web. Hola a todos. He visto algunos ejemplos en internet de como enviar una petición Post a un servlet, enviando usuario y contraseña, pero no he ...
  #1 (permalink)  
Antiguo 07/08/2008, 00:11
 
Fecha de Ingreso: julio-2003
Mensajes: 240
Antigüedad: 20 años, 10 meses
Puntos: 1
Enviar una imagen a un servlet por POST. (J2ME)

Hola a todos.

He visto algunos ejemplos en internet de como enviar una petición Post a un servlet, enviando usuario y contraseña, pero no he encontrado ninguno en el que se envie una imagen.

Sin embargo, he encontrado esta clase y creo que es lo que necesito. Aquí dejo el enlace:
http://wiki.forum.nokia.com/index.ph...load_with_J2ME

No entiendo bien como he de usar la clase, cómo envio la imagen, esta línea:
byte[] fileBytes = getFileBytes(); //retrieve file bytes with your own code

¿Cómo hago un getFileBytes() de una variable que contenga una imagen? Por que entiendo que es lo que debo hacer, ¿no?.

A ver si alguien me puede echar un cable.

Muchas gracias, un saludo.

Última edición por NeoKaisser; 08/08/2008 a las 05:34
  #2 (permalink)  
Antiguo 07/08/2008, 09:19
Avatar de Xinef  
Fecha de Ingreso: marzo-2007
Mensajes: 202
Antigüedad: 17 años, 1 mes
Puntos: 7
Respuesta: Enviar una imagen a un servlet por POST.

Cita:
Iniciado por NeoKaisser Ver Mensaje
byte[] fileBytes = getFileBytes(); //retrieve file bytes with your own code

¿Cómo hago un getFileBytes() de una variable que contenga una imagen? Por que entiendo que es lo que debo hacer, ¿no?.
Abres el archivo como un FileInputStream y vas leyendo byte a byte el archivo metiendo el resultado en un array de bytes.
  #3 (permalink)  
Antiguo 08/08/2008, 04:40
 
Fecha de Ingreso: julio-2003
Mensajes: 240
Antigüedad: 20 años, 10 meses
Puntos: 1
Respuesta: Enviar una imagen a un servlet por POST.

Hola.

La verdad es que he encontrado un ejemplo PERFECTO:

http://www.hcilab.org/documents/tuto...TTP/index.html

Lo posteo por si a alguien le sirve.


Y ya de paso, añado una duda:

¿Cómo ejecuto el servlet? Tengo netbeans y en Servers me aparece como funcionando, pero... no sé si el móvil llega a acceder a el o hay algún problema. Iré poniendo "alertas" para que el móvil me diga donde se queda, ya que no me funciona bien el ejemplo.

Muchas gracias, un saludo.
  #4 (permalink)  
Antiguo 08/08/2008, 05:30
 
Fecha de Ingreso: marzo-2008
Mensajes: 19
Antigüedad: 16 años, 2 meses
Puntos: 0
Respuesta: Enviar una imagen a un servlet por POST.

Hola Xinef, yo tengo un problema similar en Struts. Y es que quiero mostrar una gráfica al usuario, pero una vez hecha con JFreeChart, no sé como devolverla a la jsp.

He leido que no se puede devolver una imagen. Entonces se me ocurrió hacer eso que comentas, y es que guardo la gráfica en un fichero y luego lo voy leyendo byte a byte, pero luego como puedo mostrarla? es que no lo sé. Me podrías dar alguna idea?

Muchas gracias de todas formas

Un saludo
  #5 (permalink)  
Antiguo 08/08/2008, 05:35
 
Fecha de Ingreso: julio-2003
Mensajes: 240
Antigüedad: 20 años, 10 meses
Puntos: 1
Respuesta: Enviar una imagen a un servlet por POST.

Hola Mercedes26, el ejemplo y la pregunta que yo he realizado es referente a J2ME.

El ejemplo te puede servir para tomar ideas, pero poco más, la verdad y en lugar de tener jsp tenemos midlets,..... no sé, creo que nos líamos aqui.

Salu2
  #6 (permalink)  
Antiguo 08/08/2008, 06:17
Avatar de Xinef  
Fecha de Ingreso: marzo-2007
Mensajes: 202
Antigüedad: 17 años, 1 mes
Puntos: 7
Respuesta: Enviar una imagen a un servlet por POST.

Cita:
Iniciado por NeoKaisser Ver Mensaje
¿Cómo ejecuto el servlet? Tengo netbeans y en Servers me aparece como funcionando, pero... no sé si el móvil llega a acceder a el o hay algún problema. Iré poniendo "alertas" para que el móvil me diga donde se queda, ya que no me funciona bien el ejemplo.

Un servlet está a la espera de peticiones en el servidor (parece que este caso es un Tomcat o un GlassFish, si usas Netbeans). Cuando el servidor recibe una petición como una URL que cumple el patrón del mapeado del servlet, ejecuta el código con el request y response determinado.

Por lo tanto, lo único que tienes que hacer en tu móvil es tener una conexión a ese servidor y hacer una petición a esa URL. Para ello, usa las clases URL y HttpConnection, como hacen en el ejemplo que pusiste.

Cita:
Iniciado por Mercedes26
Hola Xinef, yo tengo un problema similar en Struts. Y es que quiero mostrar una gráfica al usuario, pero una vez hecha con JFreeChart, no sé como devolverla a la jsp.
Que yo recuerde JFreeChart creaba un InputStream de las gráficas que había creado.

De hecho, juraría que tenía un método que le pasabas el OutputStream del response y te mandaba por ahí la gráfica. Tendría que mirarlo, pero vamos, es fácil mirando la API.

Por lo tanto, lo único que tienes que hacer es que la acción que genere la gráfica envíe esos datos por el OutputStream del response.

Última edición por Xinef; 08/08/2008 a las 06:23
  #7 (permalink)  
Antiguo 13/08/2008, 04:08
 
Fecha de Ingreso: julio-2003
Mensajes: 240
Antigüedad: 20 años, 10 meses
Puntos: 1
Respuesta: Enviar una imagen a un servlet por POST.

Hola de nuevo.

¿Por qué puede ser que no invoque al servlet?

Tengo este código en mi Midlet:

Código:
private void conexionServlet() {
      
      HttpConnection hc = null;
      OutputStream os = null;
      
      
try{
        String url = new String("http://xxxxxxx:8084/ServletPOST/");
                
        
        hc = (HttpConnection)Connector.open(url);
        hc.setRequestMethod(HttpConnection.POST);
        
        hc.setRequestProperty("Content-Language","es-ES");
            hc.setRequestProperty("User-Agent","Profile/MIDP-2.0Configuration/CLDC-1.0");
        
        hc.setRequestProperty("Connection", "close");
        hc.setRequestProperty("Accept", "application/stream");
        
        
        //Los string los envio de una sola vez o sea envio un solo string 

        //Mandamos algunos valores
        String oxigeno, temperatura, datos;
        oxigeno="mucho oxigeno" + "\n"; 
        temperatura="poca temp" + "\n"; 
        //Los "\n" son para poder leer en el servlet los parametros 
        
        datos= oxigeno+temperatura;
        
        hc.setRequestProperty("Content-length", Integer.toString(datos.length()));
        
        
        os = hc.openOutputStream();
        
        os.write(datos.getBytes());
        
        os.flush();
               
        System.out.println("Peticion hecha");
        
               
        
        if (hc.getResponseCode() == HttpConnection.HTTP_OK)
              System.out.println("Peticion enviada correctamente");
        else 
              System.out.println("Peticion no recibida");
        
        
        os.close();
}

      catch (Exception e) {
        System.out.println(e);
      }      
      
  }
El caso es que obtengo un HTTP_OK pero el servlet no responde a nada y eso que en el código del doPost tengo puesto un

System.out.print("Soy el servlet; He sido convocado");

para ver que entra, pero nada de nada.


El servlet lo mapea el Netbeans directamente al crearlo, así que no sé que puede ser.

Salu2 y gracias por la ayuda.
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 04:45.