Foros del Web

Foros del Web (http://www.forosdelweb.com/)
-   Java (http://www.forosdelweb.com/f45/)
-   -   Struts, Problema con html:link (http://www.forosdelweb.com/f45/struts-problema-con-html-link-429049/)

isaacrc82 26/09/2006 12:09

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

Raiko 27/09/2006 00:23

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!

isaacrc82 27/09/2006 06:46

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

isaacrc82 27/09/2006 14:30

Y, a que te refieres con Id's ???

Raiko 28/09/2006 00:20

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


La zona horaria es GMT -6. Ahora son las 22:55.

Desarrollado por vBulletin® Versión 3.8.7
Derechos de Autor ©2000 - 2026, Jelsoft Enterprises Ltd.