Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Internet (https://www.clubdelphi.com/foros/forumdisplay.php?f=3)
-   -   Abrir ficheros de ftp sin guardarlos (https://www.clubdelphi.com/foros/showthread.php?t=71346)

juank1971 14-12-2010 20:37:51

Abrir ficheros de ftp sin guardarlos
 
Saludos como pudiera abrir ficheros de un ftp sin guardarlos antes digamos como hace el internet explorer que da la opción de abrir guardar,
tengo la aplicación hecha en delphi 2009 y uso los indy para conectarme al ftp, ya tengo programado la variante de bajar y subir con put y get y todo ok.
pero necesito dar la posibilidad de que el cliente pueda abrir los ficheros sin necesidad de guardarlos, o sea poder abrir para algún temporal, pero que lo controle windows no yo en la aplicación porque corro el riesgo de que abran un fichero y lo cierren después de la aplicación.

alguna idea please

Neftali [Germán.Estévez] 16-12-2010 14:07:53

Cita:

Empezado por juank1971 (Mensaje 384950)
Saludos como pudiera abrir ficheros de un ftp sin guardarlos antes digamos como hace el internet explorer que da la opción de abrir guardar...

Yo creo que este programa y otros similares, sí crean el archivo en disco, aunque lo crean en directorios temporales, que posteriormente pueden eliminar (o dejarlo que lo haga el sistema).

Puedes hacer lo mismo y utilizar el propio directorio temporal del sistema para almacenarlos o crear uno propio y limpiarlos al acabar.

Revisa:
http://www.clubdelphi.com/foros/showthread.php?t=52361
http://www.clubdelphi.com/foros/showthread.php?t=21791

juank1971 16-12-2010 20:39:38

Si gracias eso lo hice, lo que tengo duda como y cuando limpiar si al cerar mi alicación han abierto muchos ficheros del ftp y no los han cerrado aún no los puedo eliminar yo pues me daran error, y se me quedan en el directorio temporal, por eso tenia duda de si hacerlo de esa forma, tampoco queria hacerlo con la famosa variante de abrir y esperar a que termine la aplicación porque a lo mejor el usuario no que quiere terminar y quiere seguir buscando y mirando por el ftp.

Neftali [Germán.Estévez] 17-12-2010 10:15:47

Bueno, hay varias posibilidades.
Una es hacerlo al terminar el programa, si no lo puedes hacer desde tu programa, crear una pequeña aplicación limpiadora en el mismo directorio que lanzas al terminar la tuya.

Otra opción que no es excluyente, es hacer la limpieza al comenzar la siguiente ejecución; En ese momento limpias los de la última o últimas ejecuciones. Este último caso, tiene en cuenta también la posibilidad de que la aplicación se "cuelgue" o "Termine de forma abrupta". En ese caso el borrado final no tendría efecto.

Todo esto, si se hace utilizando los directorios temporales del sistema (incluyendo el temporal de cada usuario), hace que en cierta manera te puedas despreocupar, porque Windows recopila basura de esos directorios cada cierto tiempo o cuando necesita espacio.

juank1971 17-12-2010 15:45:45

resuelto
 
Neftali, ya lo resolvi muy sencillo creando un WebBrowser con nil de padre
y le paso la direccion del fichero a descargar o abrir y el me saca la ventana del browser, y se encarga de hacer todo y al cerrar el archivo lo borra solo, ademas al descargar tengo tambien el progress del mismo browser, con esto no necesito programar nada del componente TIdFTP para descargas. el browser solo se encarga.

Se pudiera publicar como un truquito no ?

Código Delphi [-]
procedure TForm6.Button3Click(Sender: TObject);
var w:TWebBrowser;
begin
  w := tWebBrowser.Create(nil);
  w.Navigate('ftp://admin:admin@localhost/admin/Documentos/Facturas%20de%20Compra/Nueva%20Carpeta/Bueno.doc');
end;

Hay que tener en cuenta que los espacios en blanco hay que convertirlos a %20, y liberar el objeto TWebBrowser el finalizar la aplicación.

Neftali [Germán.Estévez] 17-12-2010 16:24:28

Cita:

Empezado por juank1971 (Mensaje 385275)
Neftali, ya lo resolvi muy sencillo creando un WebBrowser con nil de padre

Perfecto, gracias por el aporte.

Cita:

Empezado por juank1971 (Mensaje 385275)
Se pudiera publicar como un truquito no?

Claro que sí.
Déjalo en la recámara. Desde los últimos problemas que tuvimos con intrusiones, la sección quedó desactivada para añadir trucos nuevos. Cuando la volvamos a activar se puede añadir.

Un saludo.


La franja horaria es GMT +2. Ahora son las 15:10:20.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi