Delphi ftp hatası

Delphi'de kod yazma ile ilgili sorularınızı bu foruma yazabilirsiniz.
Cevapla
fox
Üye
Mesajlar: 78
Kayıt: 24 Nis 2006 08:28

Delphi ftp hatası

Mesaj gönderen fox »

Kod: Tümünü seç

unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, IdBaseComponent, IdComponent, IdTCPConnection, IdTCPClient,
  IdFTP;

type
  TForm1 = class(TForm)
    IdFTP1: TIdFTP;
  procedure FormCreate(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.FormCreate(Sender: TObject);

begin
form1.IdFTP1.host:='ftp.members.lycos.co.uk';
form1.IdFTP1.username:='.....';//kullanıcı adınız
form1.IdFTP1.password:='....'; //şifreniz
form1.IdFTP1.put('onemli.txt','bakoldu.txt',true)

end;


  end.

arkadaşlar bununla ftp ye bağlanmak istiyorum ama olmuyo sizce hata nerede bir bakabilirmisiniz
Kullanıcı avatarı
rsimsek
Admin
Mesajlar: 4482
Kayıt: 10 Haz 2003 01:48
Konum: İstanbul

Mesaj gönderen rsimsek »

Olmayan ne, ne hatası alıyorsunuz :?:
Bilgiyi paylaşarak artıralım! Hayatı kolaylaştıralım!!
mceL
Üye
Mesajlar: 56
Kayıt: 28 Eyl 2003 01:19
Konum: Bursa
İletişim:

Mesaj gönderen mceL »

Sunucuya bağlanmadan dosyayı sunucuya aktaramazsınız.
Put komutu öncesi IdFTP1.Connect; ile sunucuya bağlanmalısınız.

Kod: Tümünü seç

try
  form1.IdFTP1.Connect;
  form1.IdFTP1.put('onemli.txt','bakoldu.txt',true) 
finally;
  form1.IdFTP1.Disconnect;
end;
poshet303
Üye
Mesajlar: 235
Kayıt: 26 Eki 2005 01:15

Mesaj gönderen poshet303 »

connect olmadan put olurmu hiç. Siz ftp programı kullanırken connect olmadan dosya alışverişi yapabiliyormusunuz.

Indy nin örnekleri var daha ayrıntı için örneği niceleyebilirsiniz.
Nerede mi? http://www.indyproject.org/Sockets/Demos/index.en.aspx

EK NOT: Gençlerin hızına yetişilmiyor :). Hiç not yokken yazmaya başladım, 2 kişinin gerisinde kalmışım. :roll:
mceL
Üye
Mesajlar: 56
Kayıt: 28 Eyl 2003 01:19
Konum: Bursa
İletişim:

Mesaj gönderen mceL »

poshet303 yazdı:
EK NOT: Gençlerin hızına yetişilmiyor :). Hiç not yokken yazmaya başladım, 2 kişinin gerisinde kalmışım. :roll:
@rsimsek => Tarih: Cum Hzr 09, 2006 1:48
@poshet303 hocam sizde bayağı yavaşmışsınız :D
fox
Üye
Mesajlar: 78
Kayıt: 24 Nis 2006 08:28

Keşke oldu diyebilsem

Mesaj gönderen fox »

Kod: Tümünü seç

unit Unit1;

interface 

uses 
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, 
  Dialogs, IdBaseComponent, IdComponent, IdTCPConnection, IdTCPClient, 
  IdFTP; 

type 
  TForm1 = class(TForm) 
    IdFTP1: TIdFTP; 
  procedure FormCreate(Sender: TObject); 
  private 
    { Private declarations } 
  public 
    { Public declarations } 
  end; 

var 
  Form1: TForm1; 

implementation 

{$R *.dfm} 

procedure TForm1.FormCreate(Sender: TObject); 

begin
form1.IdFTP1.host:='ftp.members.lycos.co.uk';
form1.IdFTP1.username:='........';//kullanıcı adınız
form1.IdFTP1.password:='......'; //şifreniz
try
  form1.IdFTP1.Connect;
  form1.IdFTP1.put('onemli.txt','bakoldu.txt',true)
finally;
  form1.IdFTP1.Disconnect; 
end;

end; 


  end.
yine olmadı kafayı yiyecem sizce neden olmuyo
mceL
Üye
Mesajlar: 56
Kayıt: 28 Eyl 2003 01:19
Konum: Bursa
İletişim:

Re: Keşke oldu diyebilsem

Mesaj gönderen mceL »

fox yazdı:yine olmadı kafayı yiyecem sizce neden olmuyo
Kodsal anlamda bir sorun yok, ayarlarınızda bir sorun olabilir.
Bence en iyisi siz verdiği hatayı yazın, belki bir çözüm bulabiliriz.
fox
Üye
Mesajlar: 78
Kayıt: 24 Nis 2006 08:28

Mesaj gönderen fox »

hata vermiyo sadece yollamıyo
fox
Üye
Mesajlar: 78
Kayıt: 24 Nis 2006 08:28

Mesaj gönderen fox »

arkadaşlar benim bir sorum var bütün şeyler bunu bilmediğimden kaynaklanıyor ben şimdi kodları yazarken procedure form createyi kendim yazıyorum (el ile) bunu bi yerden tanıtmak gerekirmi?
Kullanıcı avatarı
rsimsek
Admin
Mesajlar: 4482
Kayıt: 10 Haz 2003 01:48
Konum: İstanbul

Mesaj gönderen rsimsek »

Aynı formda olduğundan bileşenin önüne form1 diye yazmana gerek yok. Ayrıca bu işi FormCreate de değil de bir butona basarak yaptırmayı dene. Yani;

Kod: Tümünü seç

TForm1.btn_GonderClick(Sender: TObject);
begin
  IdFTP1.Host := 'ftp.members.lycos.co.uk'; // ftp sunucu adı / adresi
  IdFTP1.Username :='........'; // kullanıcı adı
  IdFTP1.Password := '......'; // şifre
  try
    IdFTP1.Connect;
    IdFTP1.Put('Gidecek_dosya_adi', 'karsi_tarafa_kaydedilecek_ad', true); // true da varsa üzerine yaz.
  finally;
    IdFTP1.Disconnect;
  end;
end;
Aşağıdaki gibi IdFTP nin OnStatus event ına foruma ekleyeceğin bir memoya yada showmessage ile işlem süresince oluşan mesajları takip için kullanabilirsin :idea:

Kod: Tümünü seç

procedure TForm1.IdFTP1Status(ASender: TObject; const AStatus: TIdStatus;
  const AStatusText: String);
begin
  mmo_Gecmis.Lines.Add(AStatusText);  // yada ShowMessage(AStatusText);
end;
Artık gerisini çözersin değil mi :wink:
Bilgiyi paylaşarak artıralım! Hayatı kolaylaştıralım!!
Kullanıcı avatarı
rsimsek
Admin
Mesajlar: 4482
Kayıt: 10 Haz 2003 01:48
Konum: İstanbul

Mesaj gönderen rsimsek »

fox yazdı:arkadaşlar benim bir sorum var bütün şeyler bunu bilmediğimden kaynaklanıyor ben şimdi kodları yazarken procedure form createyi kendim yazıyorum (el ile) bunu bi yerden tanıtmak gerekirmi?
Formun üzerine çift klik yapınca yada form seçiliyken object inspectorden event lar dan OnCreate ye klikleyip yazmalısın.. Yoksa procedure form a bağlı değilse işe yaramaz :idea:
Bilgiyi paylaşarak artıralım! Hayatı kolaylaştıralım!!
fox
Üye
Mesajlar: 78
Kayıt: 24 Nis 2006 08:28

Mesaj gönderen fox »

teşeküür ederim oldu :D yanlız klasör yollama işini yapmadım put ile olmuyo hangi kodla yapmam gerekiyor bir bilginiz varmı
mceL
Üye
Mesajlar: 56
Kayıt: 28 Eyl 2003 01:19
Konum: Bursa
İletişim:

Mesaj gönderen mceL »

direkt klasör yollama komutu yok ftplerde.
bunun yerine verilen klasördeki her dosya için "put" uygulamalısınız. Tabii ki önce IdFTP1.MakeDir() ile ftp sunucusunda klasör oluşturmalısınız.
  • 1. Klasör Seçimi
    2. Klasördeki Tüm Dosyaların Bulunması
    3. Sunucuya Gönderimi (döngü içerisinde Put çalıştırılması)
tamamı forumda aranıp bulunabilir.

kolay gelsin.
( zaman bulabilirsem ayrıntılı bir kod yazmaya çalışacağım. )
Cevapla