Deprecated: Function eregi() is deprecated in /home/codingr/sites/codingrus.ru/maincore.php on line 12
Deprecated: Function eregi() is deprecated in /home/codingr/sites/codingrus.ru/maincore.php on line 25
Deprecated: Function eregi() is deprecated in /home/codingr/sites/codingrus.ru/maincore.php on line 25
Deprecated: Function eregi() is deprecated in /home/codingr/sites/codingrus.ru/maincore.php on line 26
Deprecated: Function eregi() is deprecated in /home/codingr/sites/codingrus.ru/maincore.php on line 26
Deprecated: Function eregi() is deprecated in /home/codingr/sites/codingrus.ru/maincore.php on line 27
Deprecated: Function eregi() is deprecated in /home/codingr/sites/codingrus.ru/maincore.php on line 27
Deprecated: Function eregi() is deprecated in /home/codingr/sites/codingrus.ru/maincore.php on line 28
Deprecated: Function eregi() is deprecated in /home/codingr/sites/codingrus.ru/maincore.php on line 28
Deprecated: Function eregi() is deprecated in /home/codingr/sites/codingrus.ru/maincore.php on line 29
Deprecated: Function eregi() is deprecated in /home/codingr/sites/codingrus.ru/maincore.php on line 25
Deprecated: Function eregi() is deprecated in /home/codingr/sites/codingrus.ru/maincore.php on line 25
Deprecated: Function eregi() is deprecated in /home/codingr/sites/codingrus.ru/maincore.php on line 26
Deprecated: Function eregi() is deprecated in /home/codingr/sites/codingrus.ru/maincore.php on line 26
Deprecated: Function eregi() is deprecated in /home/codingr/sites/codingrus.ru/maincore.php on line 27
Deprecated: Function eregi() is deprecated in /home/codingr/sites/codingrus.ru/maincore.php on line 27
Deprecated: Function eregi() is deprecated in /home/codingr/sites/codingrus.ru/maincore.php on line 28
Deprecated: Function eregi() is deprecated in /home/codingr/sites/codingrus.ru/maincore.php on line 28
Deprecated: Function eregi() is deprecated in /home/codingr/sites/codingrus.ru/maincore.php on line 29
FTP через HTTP proxy .:: CodingRUS ::. программирование по-русски на Delphi, C++, PHP, Prolog, GPSS
Deprecated: Function eregi() is deprecated in /home/codingr/sites/codingrus.ru/side_left.php on line 41
Deprecated: Function eregi() is deprecated in /home/codingr/sites/codingrus.ru/side_left.php on line 41
пытаюсь риализовать скачтвание данных с ФТП через HTTP прокси с помощью IndyTCP компонент
function TFtpThread.DownloadFile(sFileName:String;fileIndex:int64):Boolean;
var
sHost:String;
sURL:String;
sPath,s:String;
bDownloadingData:Boolean;
ts:TStringlist;
i:Integer;
ms:TMemoryStream ;
begin
bExit:=false;
Synchronize(UpdateStart);
bSaveFileToTempDir:=false;
sPath:=mFTPObject.FTPData.OutputDir; //'c:\temp\hirlam\' ;
idtcp1.Port :=mFTPObject.FTPData.ProxyPort;
idtcp1.Host :=mFTPObject.FTPData.ProxyServer;
sURL:='ftp://' + mFTPObject.FTPData.FTPUserName + ':' + mFTPObject.FTPData.FTPPassword + '@'+GetHostName(mFTPObject.FTPData.FTPHostName) + FTPRemoteDir + sFileName;
sHost:=GetHostName(mFTPObject.FTPData.FTPHostName) + ':' + inttostr(mFTPObject.FTPData.FTPPort);
if idtcp1.Connected then idtcp1.Disconnect;
try
idtcp1.Connect(60);
except
on E: Exception Do begin
fMessage:=E.Message + #13#10 + sFileName;
Synchronize(UpdateCaption);
result:=False;
Exit;
end;
end;
s:='GET ' + sURL + ' HTTP/1.1';
idtcp1.WriteLn(s);
s:='Host ' + sHost;
idtcp1.WriteLn(s);
idtcp1.WriteLn();
bDownloadingData:=false;
try
ms:=TMemorystream.create();
while true do begin
try
if bDownloadingData=False then begin
s:=idtcp1.ReadLn;
if pos('close',s)>0 then begin
s:=idtcp1.ReadLn;
bDownloadingData:=True;
i:=0;
end;
end else begin
idtcp1.ReadStream(ms,500);
end;
except
break;
end;
if bExit then break;
end{While};
try
ms.SaveToFile(sPath + sFilename);
except
ms.SaveToFile('c:\temp\' + sFilename);
bSaveFileToTempDir:=true;
end;
//progressbar1.Position :=0;
result:=true;
Synchronize(UpdateEnd);
finally
ms.free;
end;
end;
вопрос в том что не всегда файл качается до конце. Только если idtcp1.ReadStream(ms,1); то в этом случае нормально качается, но очень мелено.
размер файл тоже заранее не определить поскольку прокси возвращает в кб-тах округленный размер файла.
помогите пожалуйста .
спасибо.
Перейти на форум:
Гость
Вы не зарегистрированны? Нажмите здесь для регистрации.