|
|
Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
|
Опции темы | Поиск в этой теме | Опции просмотра |
#1
|
|||
|
|||
FTP через HTTP proxy
пытаюсь риализовать скачтвание данных с ФТП через 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); то в этом случае нормально качается, но очень мелено. размер файл тоже заранее не определить поскольку прокси возвращает в кб-тах округленный размер файла. помогите пожалуйста . спасибо. |
#2
|
|||
|
|||
бери
гдето видел такое
я настраивал ИЕ и все пахало ИЕ всю винду перебивает под прокси П.С. мне помогло зделал шоб ИЕ принимал настройки с других браузеров и все но тот вопрос спорный каждая 9 винда не раздуплилась Последний раз редактировалось nemo, 08.03.2009 в 00:08. |