Saludos amigos,
La fuente de la duda se encuentra en el siguiente tutorial:
http://www.realthinclient.com/realth...rge-files-out/
Seguí todos los pasos al pie de la letra pero no se realiza el trabajo de enviar el archivo: El código de los métodos involucrados CheckRequest y DataReceived es:
Código Delphi
[-]procedure TForm1.rdpArchivosCheckRequest(Sender: TRtcConnection);
var
nombreArchivo:string;
rdsServer: TRTCDataServer absolute Sender;
begin
nombreArchivo:=GetFullFileName(rdsServer.Request.FileName);
rdsServer.Accept;
rdsServer.Request.Info['FName']:=nombreArchivo;
rdsServer.Response.ContentLength:=File_Size(nombreArchivo); rdsServer.WriteHeader(); end;
Código Delphi
[-]procedure TForm1.rdpArchivosDataReceived(Sender: TRtcConnection);
var
nombreArchivo: string;
viSent: integer;
rdsServer: TRTCDataServer absolute Sender;
begin
if rdsServer.Request.Complete then
begin
if rdsServer.Response.ContentLength>rdsServer.Response.ContentOut then begin
nombreArchivo:=rdsServer.Request.Info['FName'];
if File_Exists(nombreArchivo) then
begin
if File_Size(nombreArchivo)=rdsServer.Response.ContentLength then begin
viSent:=rdsServer.Response.ContentLength - rdsserver.Response.ContentOut;
if viSent > 16000 then viSent:=16000;
rdsServer.Write(Read_File(nombreArchivo, rdsServer.Response.ContentOut, viSent)); end
else
rdsServer.Disconnect; end
else
rdsServer.Write('Archivo No Encontrado!');
end;
end;
end;
El navegador se queda cargando eternamente y no descarga el archivo del servidor.
El único paso que no esta claro en ese tutorial es el Punto 4 titulado:
Implement OnDataReceived event in OnDataSent event.
Agradezco la ayuda.
Americo