Newsgroups : Borland : borland.public.delphi.internet.winsock : 2006 Mar : Re: FTP in Thread
| Subject: | Re: FTP in Thread |
| Posted by: | "Guillem" (guillemvicens-nospam@clubgreenoasis.com) |
| Date: | 10 Apr 2006 04:21:06 |
sham wrote:
> Further to may last email:
>
> Client :
> procedure TForm1.Button1Click(Sender: TObject);
> var
> FFTPClient: TIdFTP;
> i : integer;
> FileList : TStringList;
> currentDirectory : String;
> FileStream : TFileStream;
> filename : string;
> sizeOfFile : integer;
> begin
> Button1.Enabled := False;
>
> currentDirectory :=
> IncludeTrailingPathDelimiter(ExtractFileDir(Application.ExeName));
> for i := 1 to 100 do begin
> FileList := TStringList.Create;
> try
> FileList.Add('TestDemo' + intToStr(i));
> fileName := currentDirectory + 'TestDemo' + intToStr(i) +
> '.dat'; FileList.SaveToFile(fileName);
> finally
> FileList.Free;
> end;
> end;
>
> FFTPClient:= TIdFTP.create(nil);
> try
> FFTPClient.Host := '127.0.0.1';
> FFTPClient.Port := 21;
> FFTPClient.Username := 'abc';
> FFTPClient.Password := '';
> FFTPClient.TransferType := ftBinary;
> FFTPClient.ReadTimeout := 5000;
that's a very short timeout. Default value is 60000.
What kind of authentication are you using on the server?
OTOH I see you are not setting any proxy values. I guess you are not
working with any, are you?
>
> FFTPClient.Connect();
> try
> for i := 1 to 100 do
> begin
> fileName := 'TestDemo' + intToStr(i) + '.dat';
> FileStream := TFileStream.Create(fileName, fmOpenRead);
> try
> sizeOfFile := FileStream.Size;
>
> FFTPClient.Put(FileStream, fileName + '-FS=' +
> intToStr(sizeOfFile)); finally
> FileStream.Free;
> end;
> end;
>
> finally
> FFTPClient.Disconnect;
> end;
> finally
> FFTPClient.Free;
> end;
>
> Button1.Enabled := True;
> end;
where do you create the worker thread?
>
> Server :
>
> procedure TForm1.IdFTPServer1StoreFile(ASender: TIdFTPServerThread;
> const AFileName: String; AAppend: Boolean; var VStream: TStream);
> var
> tempFileName : string;
> begin
> tempFileName := StringReplace(AFileName, '/', '\', [rfReplaceAll]);
> VStream := TFileStream.Create('D:\data' + tempFileName, fmCreate);
> end;
>
> procedure TForm1.IdFTPServer1UserLogin(ASender: TIdFTPServerThread;
> const AUsername, APassword: String; var AAuthenticated: Boolean);
> begin
> AAuthenticated := True;
> end;
>
> That is pretty much it.
>
--
Best regards :)
Guillem Vicens Meier
Dep. Informatica Green Service S.A.
www.clubgreenoasis.com