Bu örneği yaparken ftp fonksiyonları göstermeyi amaçladım. Tek tek fonksiyonları göstermektense güzel bir örnek ile daha iyi anlayacağınızı umuyorum.
İlk önce index.php sayfamızı oluşturacağız.
<form action="gonder.php" method="POST"> <input type="file" name="kaynakdosya"><br> <input type="submit" value="Yolla"> </form>
Burada dosyamızı ekliyoruz ve Yolla butonuna bastıktan sonra gonder.php sayfası karşımıza geliyor.
<?php //ftp serverımızı, kullanıcı adı ve şifremizi yazıyoruz. $ftpserver = "ftp.zartzurt.com"; $ftpuser = "zartzurt"; $ftppass = "123456"; //POST metodu ile dosyamızı çekiyoruz. $kaynakdosya = $_POST["kaynakdosya"]; $hedefdosya = $kaynakdosya; //ftp_connect ile ftp serverımıza bağlanıyoruz $baglanti = ftp_connect($ftpserver); //kullanııcı bilgilerimiz ile giriş yapıyoruz. $giris = ftp_login($baglanti, $ftpuser, $ftppass); //bağlantı ve girişin olumlu olup olmadığını kontrol ediyoruz. if ((!$baglanti) || (!$giris)) { echo "Ftp bağlantısı sağlanamadı"; die; } else { echo "Ftp'ye bağlanıldı<br>"; } //ftp_put fonksiyonu ile dosyamızı yüklüyoruz. $yukle = ftp_put($baglanti,$hedefdosya, $kaynakdosya, FTP_BINARY); //yüklenip yüklenemdiğini kontrol ediyoruz if (!$yukle) { echo "Dosya Yüklenemiyor"; } else { echo "Dosya Yüklendi"; } //bağlantımızı kapatıyoruz ftp_close($baglanti); ?>
$ftpserver, $ftpuser ve $ftppass alanları kendinize göre doldurduktan sonra işlemi gerçekleştirebilirsiniz.
Uygulama dosyasını http://www.guraysuerdem.com/dosya/ftp.rar adresinden indirebilirsiniz.
Merhaba, dosyanin % kacinin karsi tarafa gittigini nasil ogrenebiliriz? FTP sayfasinda progress bar gostermek istersek nasil bir yontem izlememiz gerekecek?
Yapmak istediğini javascript ile yapabilirsin örnek olarak bolca ajax kütüphanesi bulunuyor burada verdiğim örnekleri inceleyebilirsin
http://www.webdice.org/uber_uploader/
http://thinkingphp.org/demos/cake-timer/
http://www.sibsoft.net/xupload.html
Daha sonra anlaşılır bir şekilde örnek yaparak göstereceğim
peki herhangi bi güvelik acığı söz konusumu ?
Eğer transfer anında senin ile sunucunun arasına 3. bir kişinin girme ihtimali varsa güvenlik açığı oluşabilir.Buda senin veya sunucunun izlenmesi sonucu oluşur.
kodu gösterilecek yazı
arkadaşlar ne kadar denediysem olmadı sunucuya bağlanıyor ama dosyayı aktarmıyor yardım edebilirmisiniz 🙁
@mert, form elementinde enctype parametresi eksik, o yüzden dosya aktarılamıyordur.
Güzel bir bilgi paylaşımı. Teşekkürler.
Küçük bir sorum olacak.
Uzak sunucuya upload edilecek dizini nasıl belirleyebiliriz?
Çok teşekkürler en kısa zamanda test edeceğim.
Merhaba,
Ftpye başarılı bir şekilde bağlandım ancak dosyayı yükleyemiyorum. Aldığım hata:
“Warning: ftp_put(): Filename cannot be empty”
Kolay gelsin
form da verinin files olduğunu belirtmemişsin şeklinde olacak ama $kaynakdosya = $_POST[“kaynakdosya”]; şeklinde o veriyi alamazsın $kaynakdosya=4_FILES[“kaynakdosya”][tmp_name];
böyle bile olsa bu yöntemle dosyayı ftp yükleyemezsin. dosyanın sadece ismini alman gerekir $kaynakdosya=4_FILES[“kaynakdosya”][name]; şeklinde ve dosya komutu çalıştırdığın dizinde olursa onu ftp aktarır.