PDA

Ver la Versión Completa : Descarga de ficheros con TIdHTTPServer


Val
01-08-2007, 12:24:57
Hola foro!

Tengo una aplicación en la que con el TIdHTTPServer sirvo páginas dinámicas. El problema viene cuando quiero que el usuario se descargue archivos que genero también de forma dinámica. Es decir, muestro una página que tiene un formulario y según lo introducido en el formulario genero un archivo y trato de servirlo:

Servidor.ServeFile(Thread, ResponseInfo, Ruta);

Y en lugar de descargar el fichero el navegador muestra el contenido del mismo, un montón de simbolos raros. He probado a poner distintas extensiones que de otras webs puedo descargarme sin problema pero no hay forma, siempre obtengo el mismo resultado.

¿Alguna sugerencia?

Gracias

dec
01-08-2007, 13:29:07
Hola,

Tienes que indicar en la cabecera HTTP el "mime type" del archivo. Si es un archivo JPG, por ejemplo, tienes que indicarlo. También puede ser (digo yo...) que trates de mostrar algún tipo de archivo que el navegador, simplemente, no puede mostrar, pero, creo que los tiros pueden ir por lo primero: es menester indicar en las cabeceras HTTP de respuesta el "mime type" del archivo en cuestión.

Val
01-08-2007, 17:02:10
Exacto, justamente era eso.


ResponseInfo.ContentType := 'application/zip';
ResponseInfo.CustomHeaders->Values['Content-Disposition'] := 'filename = ' + ExtractFileName(RutaZip);
FPrincipal.Servidor.ServeFile(Thread, ResponseInfo, RutaZip);


Gracias :)