PDA

Ver la Versión Completa : IdHTTPServer: Permitir descarga de archivos.


DarkByte
24-10-2004, 15:21:45
Holaaa!!... he estado ojeando el ejemplo del servidor http de las indy... He construido un servidor web, y me he quedado atascado en la parte de descargar archivos. El código de las indy sirve para las imágenes, pero no para, por ejemplo, ejecutables y comprimidos.

Estoy usando el siguiente código:

procedure TfrmServWeb.Descargar(AThread: TIdPeerThread;
ARequestInfo: TIdHTTPRequestInfo; AResponseInfo: TIdHTTPResponseInfo);
begin
If FileExists(HttpDecode(ARequestInfo.UnparsedParams)) Then
IdServHttp.ServeFile(AThread,AResponseInfo,ARequestInfo.UnparsedParams)
Else
begin
AResponseInfo.ContentText := Encabezado.Content + '<u>Descargar archivo</u>' + Menu.Content;
AResponseInfo.ContentText := AResponseInfo.ContentText + '<b>Imposible descargar '
+HttpDecode(ARequestInfo.UnparsedParams)+', el fichero no existe</b>'+final.Content;
end;
end;

El código sería lanzado al hacerse:

http://localhost:8088/descargar?fichero.zip

Ya se que esto es muy inseguro, ya que se puede descargar archivos del sistema cambiando la cabecera y etc... pero eso no me importa, ya que el servidor es de prueba.