Selamün Aleyküm
Delphide idftp ile daha önce web siteme bağlanarak dosya indirebilirken
hosting firmasını değiştirince Türkçe karekterli dosyalarda hata veriyor ve dosyayı
indirmiyor. Bu neden olabilir acaba, teşekkürler.
idftp bağlantısı
Forum kuralları
Forum kurallarını okuyup, uyunuz!
Forum kurallarını okuyup, uyunuz!
- White Rose
- Üye
- Mesajlar: 726
- Kayıt: 06 Tem 2005 09:41
- Konum: Güneyden
- İletişim:
Re: idftp bağlantısı
Merhaba,
Dosya indirme kodunu ve gelen detylı hata mesajını paylaşmanız mümkün müdür?
Dosya indirme kodunu ve gelen detylı hata mesajını paylaşmanız mümkün müdür?
- White Rose
- Üye
- Mesajlar: 726
- Kayıt: 06 Tem 2005 09:41
- Konum: Güneyden
- İletişim:
Re: idftp bağlantısı
IdFTP.Host :=Host adresi;
IdFTP.Username:=Kullanıcı adı;
IdFTP.Password :=şifre
IdFTP.Connect;
IdFTP.ChangeDir('public_html/.....');
IdFTP.Get(Dosya, Dizin+Dosya, True);
HATA:
Can't open :dosya adı: No such file or directory
IdFTP.Username:=Kullanıcı adı;
IdFTP.Password :=şifre
IdFTP.Connect;
IdFTP.ChangeDir('public_html/.....');
IdFTP.Get(Dosya, Dizin+Dosya, True);
HATA:
Can't open :dosya adı: No such file or directory
Re: idftp bağlantısı
FTP bağlantıları normal koşullarda UTF-8 karakterleri kullanmaz. Eğer kullanılacak ise her iki tarafın (istemci, sunucu) bunu desteklemesi gerekir. Eğer sizin bağlandığınız sunucunun UTF-8 desteği yok ise dosya indirme işlemi utf7 dışı karakterler içeren dizin veya dosya isimleri için başarısız olacaktır.
Kullandığınız IdFtp nesnesi Indy 10 versiyona ait olduğunu varsayarak aşağıdaki şekilde bir deneme yapabilirsiniz. Indy 9 ise yanlış bilmiyor ise UTF8 desteği yok ve bu paket ile sorununuzu çözmeniz çok daha zor olacaktır.
Kullandığınız IdFtp nesnesi Indy 10 versiyona ait olduğunu varsayarak aşağıdaki şekilde bir deneme yapabilirsiniz. Indy 9 ise yanlış bilmiyor ise UTF8 desteği yok ve bu paket ile sorununuzu çözmeniz çok daha zor olacaktır.
Kod: Tümünü seç
IdFtp1.Host := HostAdresi;
IdFtp1.Username := KullanıciAdi;
IdFtp1.Password := Sifre;
try
IdFtp1.Connect();
except
on E:Exception do
begin
ShowMessage('FTP bağlantı hatası:' + E.Message);
Exit();
end;
end;
// Eğer karşı sunucunun desteği yoksa burada da hata ile karşılaşılabilir
try
IdFTP1.IOHandler.DefStringEncoding := IndyTextEncoding_UTF8;
except
on E:Exception do
begin
ShowMessage('UTF8 dönüşümü yapılamadı:' + E.Message);
Exit();
end;
end;
try
IdFtp1.ChangeDir('public_html/.....');
IdFtp1.Get(Dosya, Dizin+Dosya, True);
finally
try
IdFtp1.Disconnect();
except
on E:Exception do ShowMessage('Ftp bağlantısı kapatılamadı:' + E.Message);
end;
end;
- White Rose
- Üye
- Mesajlar: 726
- Kayıt: 06 Tem 2005 09:41
- Konum: Güneyden
- İletişim:
Re: idftp bağlantısı
cevap için teşekkür ederim, bende indy9 yüklü ama bir deneyeyim
- White Rose
- Üye
- Mesajlar: 726
- Kayıt: 06 Tem 2005 09:41
- Konum: Güneyden
- İletişim:
Re: idftp bağlantısı
indy9 da DefStringEncoding özelliği yok maalesef
- White Rose
- Üye
- Mesajlar: 726
- Kayıt: 06 Tem 2005 09:41
- Konum: Güneyden
- İletişim:
Re: idftp bağlantısı
Arkadaşlar olaya şöyle bir çözüm buldum.
Ftp (server) tarafındaki dosya adlarındaki tüm Türkçe karakterleri değiştirdim.
Ingilizceye_Cevir() fonksiyonu ile de delphi tarafında Türkçe karekterleri değiştirdim.
ve
IdFTP.Get(Ingilizceye_Cevir(Dosya), Dizin+Dosya, True);
koduyla hallettim. İngilizce harflerle download edip Türkçe isimle kaydediyor.
Ftp (server) tarafındaki dosya adlarındaki tüm Türkçe karakterleri değiştirdim.
Ingilizceye_Cevir() fonksiyonu ile de delphi tarafında Türkçe karekterleri değiştirdim.
ve
IdFTP.Get(Ingilizceye_Cevir(Dosya), Dizin+Dosya, True);
koduyla hallettim. İngilizce harflerle download edip Türkçe isimle kaydediyor.