Retroceder   Foros del Web > Programación para sitios web > Java y JSP

Respuesta
 
Herramientas Desplegado
Antiguo 26-sep-2006, 13:09   #1 (permalink)
isaacrc82 está en el buen camino
 
Fecha de Ingreso: junio-2004
Mensajes: 169
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
isaacrc82 está desconectado   Responder Citando
Antiguo 27-sep-2006, 01:23   #2 (permalink)
Raiko ha deshabilitado el karma
 
Fecha de Ingreso: noviembre-2005
Mensajes: 97
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!
Raiko está desconectado   Responder Citando
Antiguo 27-sep-2006, 07:46   #3 (permalink)
isaacrc82 está en el buen camino
 
Fecha de Ingreso: junio-2004
Mensajes: 169
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-sep-2006 a las 15:29.
isaacrc82 está desconectado   Responder Citando
Antiguo 27-sep-2006, 15:30   #4 (permalink)
isaacrc82 está en el buen camino
 
Fecha de Ingreso: junio-2004
Mensajes: 169
Pregunta

Y, a que te refieres con Id's ???
isaacrc82 está desconectado   Responder Citando
Antiguo 28-sep-2006, 01:20   #5 (permalink)
Raiko ha deshabilitado el karma
 
Fecha de Ingreso: noviembre-2005
Mensajes: 97
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
Raiko está desconectado   Responder Citando
Respuesta

No hay votos aún.


Herramientas
Desplegado

Normas de Publicación
No puedes crear nuevos temas
No puedes responder temas
No puedes subir archivos adjuntos
No puedes editar tus mensajes

BB code is Activado
Caritas están Activado
[IMG] está Desactivado
Código HTML está Desactivado


La Zona horaria es GMT -6. Ahora son las 01:15.


Message Board Statistics

LinkBacks Enabled by vBSEO 3.1.0

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96