Sakin Adam

Web Yazılım Günlüğü

Php ile Ftpden Dosya Transferi

Php ile standart olarak move_uploaded_file() fonksiyonunu kullanarak, istenilen dosyayı sunucu üzerine kayıt etmek mümkün, ancak ftp üzerinden dosya yazma izni vermek sakıntılı durumlar oluşturabileceğinden, ftp yardımıyla dosya transfer etmek daha güvenli olabilir. Bir diğer neden ise uzak sunucuya dosya yükleme ihtiyacı gerekliliği olduğunda kullanmak. Bu makalede dosya yükleme ve silme olmak üzere iki örnek vericem. Umarım faydalı olur.

Dosya Yükleme

<?php
$ftp_adres = 'sakinadam.com';
$ftp_k_adi = 'ftp kullanici adi';
$ftp_sifre = 'ftp sifre';
$kaynak	   = 'kaynak url';//kaydedilecek olan dosyanın kaynagı, dosya yüklemelerde $_FILES["myfile"]["tmp_name"] de kullanabilirsiniz
$hedef     = 'hedef url';//hedef sunucuya yüklenirken hangi url ile yüknecek. örn: resim.jpg


$baglanti = ftp_connect($ftp_adres);
ftp_login($baglanti, $ftp_k_adi, $ftp_sifre);
ftp_chdir($baglanti, 'public_html/images');
ftp_put($baglanti, $hedef, $kaynak, FTP_BINARY);
ftp_close($baglanti);
?>

Dosya Silme

<?php
$ftp_adres = 'sakinadam.com';
$ftp_k_adi = 'ftp kullanici adi';
$ftp_sifre = 'ftp sifre';

$baglanti = ftp_connect($ftp_adres);
ftp_login($baglanti, $ftp_k_adi, $ftp_sifre);//baglanti yapiliyor
ftp_delete($baglanti, 'public_html/resim.jpg');//dizin ve dosya belirleniyor
ftp_close($baglanti);//baglanti kapatiliyor
?>

Php yardımıyla ftp işlemleri yaparken dikkatli olmanız gerekiyor. Bir dosya yüklerken aynı isimde bir dosya varsa direkt üzerine yazıyor ve size herhangi bir işlem onay sorusu sormuyor. Silme işleminde de durum aynı.

Ftp Nedir?

Ftp; File Transfer Protocol (dosya transfer protokolü) kelimelerinin baş harflerinin birleşiminden oluşur. Sunucu üzerine dosya aktarmaya ve dosya almaya yarar. Hazırlanan web sayfaları, html, php, js, css, resim gibi dosyalar sunucuya ftp aracılığıyla yüklenir. 20 numaralı portu kullanır. Güvenlik duvarlarında ftp’ye erişim engellenirken bu port kapatılır.

En çok tercih edilen ftp programları filezilla ve cuteftp-dir. Filezilla açık kaynak ve ücretsizken, cuteftp ücretlidir. Filezilla’yı bu adresten indirebilirsiniz : https://filezilla-project.org/

Ftp’ye bağlandığında farklı klasörler göreceksiniz. Yayınlamak istediğiniz dosyaları; linux sunucularda public_html klasörüne, windows sunucularda ise www klasörüne yüklemeniz gerekir. Bu dizin altına farklı klasörler oluşturarak, belli bir hiyerarşi kurabilirsiniz.