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

Struts, Problema con html:link

Estas en el tema de Struts, Problema con html:link en el foro de Java en Foros del Web. Hola a todos: Soy nuevo con struts. Lo que quiero hacer es una boberia pero no me sale. Tengo un objeto "Fichero" que tiene las ...
  #1 (permalink)  
Antiguo 26/09/2006, 12:09
 
Fecha de Ingreso: junio-2004
Mensajes: 185
Antigüedad: 19 años, 11 meses
Puntos: 0
Pregunta Struts, Problema con html:link

Hola a todos:

Soy nuevo con struts. Lo que quiero hacer es una boberia pero no me sale.

Tengo un objeto "Fichero" que tiene las siguientes propiedades: filename(Nombre del fichero), bytes(cantidad de bytes) y filepath(camino físico al fichero).

Con el action le paso el objeto a la página .jsp. Hasta aqui todo funciona perfectamente, pero lo que quiero es que cuando vaya a mostrar el nombre del fichero se muestre como un hipervínculo con la ruta física del fichero que se guarda en el filepath y que cuando le de click a ese hipevinculo se me descargue el fichero. pero no me funciona esto era lo que estaba haciendo:

Código PHP:
   <html:link name="file" property="filepath" >
   <
bean:write name="file" property="filename" />
   <
html:link  /> 
pero no me funciona, me podrian ayudar por favor.
Se los agradecería.
Saludos
  #2 (permalink)  
Antiguo 27/09/2006, 00:23
 
Fecha de Ingreso: noviembre-2005
Mensajes: 97
Antigüedad: 18 años, 5 meses
Puntos: 0
Tienes que referenciar al HtmlLink a un action.

<html:link action="ACTION_DE_DESCARGA" paramId="fichero" paramName="file" paramProperty="filepath">....</html:link>


De esta forma, el link quedará como:

http://www...../ACTION_DE_DESCARGA.do?fichero="filepath"

donde filepath es la ruta al fichero.

En ese action podrás hacer

request.getParameter("fichero").toString()

y obtener la ruta la fichero. Luego lo lees con inputStream, y lo escribes en el response. De todas formas, te aconsejaría que tuvieras Id's y cosas por el estilo en vez de enviar el path.

Saludos!
  #3 (permalink)  
Antiguo 27/09/2006, 06:46
 
Fecha de Ingreso: junio-2004
Mensajes: 185
Antigüedad: 19 años, 11 meses
Puntos: 0
Pregunta

Hola tengo otra duda:

Me dijiste que en el action tomara el filepath del fichero así request.getParameter("fichero").toString() y despues lo leo con un input stream, eso lo hice de esta manera:
String filePath = request.getParameter("file").toString();
InputStream in;
in = new FileInputStream(filePath);

pero a la hora de escribirlo en el response ¿Como lo hago?
Le agradecería que me ayudara
Salu2

Última edición por isaacrc82; 27/09/2006 a las 14:29
  #4 (permalink)  
Antiguo 27/09/2006, 14:30
 
Fecha de Ingreso: junio-2004
Mensajes: 185
Antigüedad: 19 años, 11 meses
Puntos: 0
Pregunta

Y, a que te refieres con Id's ???
  #5 (permalink)  
Antiguo 28/09/2006, 00:20
 
Fecha de Ingreso: noviembre-2005
Mensajes: 97
Antigüedad: 18 años, 5 meses
Puntos: 0
Con ID me refiero a que no envies directamente el path al fichero por el link, es mejor que envies algo del estilo

ACTION_DE_DESCARGA.do?idfichero=2

haces en el action

request.getParameter("idfichero")

Y obtienes el 2, sabiendo que esa es la ID del fichero vas a algun sitio que con ese 2 te indique el path del fichero. Con una tabla interna, o algo por el estilo


Para escribir el contenido en el response, en el Action haces:

Código PHP:
InputStream contenido// Contenido del fichero
byte[] aux=new byte[1024];
int count;
OutputStream out=response.getOutputStream();

while((
count=contenido.read(aux))!=-1){
    
out.write(aux0count);
}

out.flush();
out.close();
return 
null 

Saludos
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 23:51.