Delphi i FTP

Offtop MCbx 01-01-1970 2092 3
25-09-2005 15:06
Otóż zabrałem się za program Delphi 7. Napisałem programik, który:
1. Bierze obraz (JPG).
2. Bierze tekst (TXT).
3. Obrazkowi robi zupę z pikseli na podstawie tekstu (fachowo się to nazywa steganografia).
4. Zapisuje obraz w pliku tymczasowym (BMP)
5. Na prośbe użytkownika kopiuje plik tymczasowy w miejsce wyznaczone w okienku zapisu.

I teraz chciałbym do tego dodać jeszcze jedna opcję: Chodzi o wysłanie obrazka docelowegona podany FTP na podanym porcie, przy użyciu podanych login/hasło. Jak to zrobić? Jakich komponentów użyć? Ściągnąłem komponent Synapse, ale ma nieaktualną dokumentację (żadne procedury się nie zgadzają), więc nie kumam. Wypadałoby też, żeby podawał stan wysyłania i prędkość.

Druga opcja to pobranie obrazka ze wskazanego w sieci miejsca.

Jakieś propozycje? może jakiś kod? Czy w Delphi są wogóle do tego komponenty?
25-09-2005 15:37
Być są, nawet domyślnie w indy...
Pobranie obrazka ze wskazanego miejsca tutaj powinno starczyć HTTPGET :]
Ogólnie reasumując http://4programmers.net
27-09-2005 19:33
Udało się! Wstawiłem idFTP, i wstawiłem:

w wydarzeniu OnWork:

begin
  Gauge1.Progress := AWorkCount;
  Memo3.lines.Append('ŁADOWANIE...');

end;


Wydarzenie OnWorkBegin:

begin
  Gauge1.MaxValue := AWorkCountMax;
  Gauge1.Progress := 0;
  memo3.lines.Append('PREPARING...');
end;


A przycisk oprogramowałem tak:

begin
    IdFTP1.Host:= Edit1.text;
    idFTP1.Port:=SpinEdit1.Value;
    IdFTP1.Username:= Edit2.text;
    IdFTP1.Password:= Edit3.text;
    IdFTP1.Connect(true);
try
    IdFTP1.Passive:=CheckBox1.checked;
    IdFTP1.Put('c:\temp.bmp',Edit4.text,false);
    Memo3.Lines.Append('Zakonczono procedure');
    finally
    IdFTP1.Disconnect;
    end;

end;


W każdym razie działa :)
Pobieranie załatwiłem podobnie, tylko użyłem komponentu idHTTP. Wydarzenia OnWork i OnWorkBegin opisałem podobnie, przycisk zaś tak:



begin
   IdFTP1.Host:= Edit1.text;
    idFTP1.Port:=SpinEdit1.Value;
    IdFTP1.Username:= Edit2.text;
    IdFTP1.Password:= Edit3.text;
    IdFTP1.Connect(true);
try
    IdFTP1.Passive:=CheckBox1.checked;
    IdFTP1.Put('c:\temp.bmp',Edit4.text,false);
    finally
    IdFTP1.Disconnect;
    end;
end;


I hula. Używałem Indy Components 9.0
27-09-2005 20:16
Genialnie, jestem z ciebie dumny !
;)

Co najmilsze doszedłeś do tego samemu :]

//Sacull - szkoda, że pascal nie ma takiego wsparcia "bibliotekami", ale tak czy inaczej, problem rozwiązany -> temat zamykam.

Ten wątek został zamknięty. Aby rozpocząć nową dyskusję, zaloguj się.