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:
Código Delphi
[-]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 + 'Descargar archivo' + Menu.Content;
AResponseInfo.ContentText := AResponseInfo.ContentText + 'Imposible descargar '
+HttpDecode(ARequestInfo.UnparsedParams)+', el fichero no existe'+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.