Bağlantı: MAKEFTPCONNECTION
Tüm dosya sunucusu işlemleri, MAKEFTPCONNECTION ile açılan bir bağlantı içinde çalışır. Komut host, port, kullanıcı adı, şifre ve protokol (FTP/FTPS/SFTP) parametrelerini alır — port ve protokol opsiyoneldir, varsayılan protokol FTP'dir:
OBJECT:
STRING FTPHOST,
STRING FTPUSER,
STRING FTPPASS;
FTPHOST = 'anyftp.com.tr';
FTPUSER = 'user';
FTPPASS = 'password';
MAKEFTPCONNECTION HOST FTPHOST USERNAME FTPUSER PASSW FTPPASS PROTOCOL FTP;
IF SYS_STATUS == 0 THEN
/* baglanti basarili */
ELSE
/* baglanti basarisiz */
ENDIF;
CLOSEFTPCONNECTION FTPHOST;
Aynı host'a birden fazla bağlantı açılamaz — ayırt edici parametre HOST'tur. Tüm FTP işlemleri application server üzerinde çalışır, client'tan doğrudan dosya transferi desteklenmez.
Bağlantıyı kapatmayı unutmayın
CLOSEFTPCONNECTION ile açık bağlantıyı kapatmak programcının sorumluluğundadır. Sistem, transaction kapanmadan önce açık kalan bağlantıları kapatmaya çalışsa da, işiniz bitince bağlantıyı elle kapatmak önerilir.
Çalışma dizini
Bağlantı kurulduktan sonra bir çalışma dizini atanır; göreli (relative) yollar bu dizine göre hesaplanır. Mevcut dizini okumak ve değiştirmek için FTPRUNCOMMAND kullanılır:
FTPRUNCOMMAND CURRENTDIRECTORY TO STRINGVAR1 ON FTPHOST;
FTPRUNCOMMAND CHANGEDIRECTORY '/uploads' ON FTPHOST;
Dosya indirmek: FTPDOWNLOAD
FTPDOWNLOAD 'file.xml' TO LOCALPATH FROM FTPHOST;
Hedef yol (LOCALPATH) application server üzerinde geçerli bir yol olmalıdır — * ile başlayan client tarafı yolları FTP işlemlerinde kullanılamaz.
Sık karşılaşılan hatalar
there is not a ftp connection to host ...: geçersiz bağlantı, host kapalı ya da hiç açılmamış.login or password incorrect!: hatalı kimlik bilgisi.request timeout while connecting host ...: sunucuya 10 saniye içinde yanıt gelmedi.permission failure: FTP kullanıcısının yetkisi yetersiz.
Bu durumların hepsinde SYS_STATUS ve SYS_STATUSERROR sistem değişkenleri set edilir; detaylar trace dosyasına da düşer.
Sonuç
FTP işlemlerinde akış hep aynı: bağlan, SYS_STATUS ile kontrol et, işini yap, bağlantıyı kapat. Hata kontrolünü atlamak, sessizce başarısız olan bir transfer'i fark etmemenize yol açabilir.
Yorumlar (0)
Yorum Yaz