Anasayfa İletişim RSS
Burada reklam vermek için tıklayın!
 
Şimdi Üye Ol | Şifremi Unuttum
 
Anasayfa » PHP & MySQL (139 ders)
 
Hosta Dosya Alma

Yazar: Yavuz Atuğ  
Eklenme: 12.10.2008   Okunma: 171    Puan: 3.8   Seviyesi:  İleri
Bu dersimizde hosta dosya almak için izlenebilecek yollara bir göz atalım.

Aşağıdaki kodlara göz attığımız zaman html ve php kodlarını göreceksiniz. Şimdi bu kodları anlatmaya başlamadan önce ilk denememizi yapalım. Dosyayı kaydedip çalıştırdığınız zaman karşınıza iki tane form elemanı çıkacak. İkisi de web sayfalarından görmeye alışık olduğunuz elemanlar.

<form name="form1" enctype="multipart/form-data" action="<? echo $PHP_SELF;?>" method="post">
<input type="file" name="dosya">
<br>
<input type="submit" name="gonder" value="Gönder">
</form>

<?
if(@$gonder == "Gönder") {
copy ( $dosya, $dosya_name ) or die ( "Dosya Kopyalanamıyor." );
echo $dosya_name;
echo "<br>";
echo $dosya_size . " Kb";
echo "<br>";
echo $dosya_type;
echo "<br>";
echo "<a href=\"$dosya_name\">Tıklayınız.</a>";
}
?>


Bunlardan biri dosya göndermenizi sağlayan "Form - File" elamanı. Diğeri ise "Form - Button".

Şimdi Browse tuşuna basıp bir dosya seçelim, (resim Dosyası seçebilirsiniz) sonra da gönder tuşuna basalım.

Muhtemelen (klasöre yazma izinleri vs.. gibi etkenler yoksa) aşağıdaki gibi bir çıktı alacaksınız.

dosyadi.xxx
15723 Kb
image/pjpeg
Tıklayınız.


İlk satırda dosya adı, sonrakinde dosya boyutu, sonrakinde dosya tipi ve en sonda tıklayın. adlı bir link. Eğer gönderdiğiniz dosya bir resim yada benzeri bir dosya ise bu linke tıklayarak resmi görebileceksiniz.

Not: Eğer sunucunuzun kendi üzerinde çalıştıramıyacağı bir dosya ise; bu dosyayı download etmeniz için size gönderecektir.

Buraya kadar yazılanlar bu işe yeni başlamış arkadaşlar için açıklayıcı nitelikteydi; şimdi kodları teker teker açıklamaya başlıyalım.

AÇIKLAMALAR:

<form name="form1" enctype="multipart/form-data" action="<? echo $PHP_SELF;?>" method="post"> // Bu satırı Html'den biraz anlayan ya da daha önce web sayfası yapmış olan pek çok kişi bilecektir.

<form name="form1" // Bu bölüm ie form1 adında bir form oluşturduk.

enctype="multipart/form-data //Bu alan ile form tipini belirledir.

action="<? echo $PHP_SELF;?>" // Bu satırda formun gönder tuşuna bastığımız zaman form bilgilerinin hangi dosyaya gönderileceğini belirledik. Anlıyacağınız gibi PHP nin kendinden gelen $PHP_SELF değişkeni ile form bilgilerini tekrar aynı dosyaya gönderdik. Bunun nedenini birazdan göreceksiniz.

method="post" // Bu bölüm ilede formumuzun bilgileri göndereceği zamanki metodu belirledik.

Not: Form methodu olarak (Java vs. hariç) iki adet method vardır: Bunlardan biri "post" diğeri "get"tir. İkisi arasındaki temel fark; post metodunda gönderilen form bilgileri URL kısmında görülmezken, get methodunda form bilgileri URL kısmında görünür. Teknik olarak hemen herkesin post methodu kullanmak istemesi düşünülse de her ikisinin de farklı özellikleri vardır. (Konumuz dışında olduğu için uzatmıyorum. Gerekirse ileride bir döküman yazarız.)

<input type="file" name="dosya"> // İkinci satırda ise dosya göndermemizi sağlayan bir "Form - File" elamanı yaptık. Burada name="dosya" ki alanda; "name"in bir değişken ve değerinin "dosya" olduğunu belirteyim.

<input type="submit" name="gonder" value="Gönder"> // Bu satırda yine formdaki bilgileri istediğimiz dosyaya göndermemizi sağlayan "Form - Submit" elemanını kullandık.

name="gonder" value="Gönder" // Buradan anlıyacağınız gibi "gonder" adında ve değeri "Gönder" olan bir değişken tanımladık.

</form> // Bu satır ilede form alanımızı bitirdik (Html'de formlar <form> </form> arasındaki bilgileri gönderir. Bu alan dışındaki bilgiler işlenmez).

Şimdi gelelim PHP kodlarımıza:

<?
if(@$gonder == "Gönder") {
// Bu satır ile önce <? ile php kodumuzu başlattık sonra Php'nin koşul fonksiyonlarından biri olan if() (eğer) fonksiyonu ile mantık olarak şöyle bir şey yazdık:

Eğer $gonder değişkeninin değeri "Gönder" değerine eşitse aşağıdaki kodları uygula. $gonder değişkeninin başında @ işareti de böyle bir değişken yoksa hata mesajı verme anlamındadır.

Not: Dökümanın başında bahsettiğim dosya gönderme işleminin tek dosyada yapılması bu sayde oluşuyor. Yani form gönderilmediği sürece dosyayı çalıştırdığınız zaman karşınıza sadece ; dosya seçme ve gönderme butonları çıkıyor. Eğer dosya göndere basarsak <input type="submit" name="gonder" value="Gönder"> bu satır vasıtasıyla $gonder değişkeninin değeri "Gönder" olduğundan Php kodlarımız çalışmaya başlıyor.

copy ( $dosya, $dosya_name ) or die ( "Dosya Kopyalanamıyor." ); // Bu satır ile Php'deki copy() fonksiyonu kullanılarak, $dosya değişkeni (formdan gelen) , $dosya değişkeninin _name dizesi adıyla kaydediliyor.

echo $dosya_name; // Bu satır ile $dosya değişkeninin adını (name dizesini) ekrana bastırıyoruz.

echo $dosya_size . " Kb"; // Bu satır ile $dosya değişkeninin size ( boyut ) dizesini...

echo $dosya_type; // Bu satır ile de dosya tipini ekrana bastırıyoruz.

echo "<a href=\"$dosya_name\">Tıklayınız.</a>"; // Bu satır ile de Html'de yazılara yada nesnelere link vermemizi sağlayan <a href> komutu ile gönderdiğimiz dosyanın adına bir link veriyoruz.

}
?>
//Bu işaretlerle de kodu kapatıyoruz.
 
  • Currently 3.80/5
Değelendirmek için üye girişi yapmanız gerekmektedir
EkleBunu Sosyal Paylam Butonu
Hosta Dosya Alma Dersini Yazdırın

"Hosta Dosya Alma" dersi için 3 yorum var

18.10.2008 ATİLLA diyor ki:
teş..

18.10.2008 fordane diyor ki:
Tam da aradığım konuydu. @işretini de bilmiyordum. Sormayı düşünüyordum. Çok anlaşılır anlatmışsınız. Teşekkür ederim.

01.11.2008 emyob diyor ki:
arkadaşlar kusura bakmayın ama ben php ileri geçemedim, yani yanımda biri olmalıki takıldığım yerde rahat sorabileceğim
ama bu ortam oluşacak gibi değil çözüm artık buralardan sormak .şimdi kalkıpta ben olayı en yice öğrenemem ama şuanda yapmak istediğim bişe var mesela elimde php sanal mağaza scripti var. şimdi ben bunu nete nasıl kuaracağım, bunun tamamen bu konuda kör cahilmişim gibi anlatırmısınız.

Üye olmadan yorum ekleyemezsiniz !


UYARI: SANALKURS'ta yer alan materyaller ile ilgili her türlü sorumluluk hazırlayan veya gönderene aittir. SANALKURS'ta yer alan hiçbir makale, yazarından izinsiz başka bir yerde yayınlanamaz. SANALKURS kullanıcıları ve üyeleri, üçüncü kişilerin telif hakkı sahibi bulunduğu her türlü fikri eser, fotoğraf, resim vb. materyal ve ürünleri kullanamazlar. SANALKURS kullanıcı ve yazarlarının, üçüncü kişilerin telif hakkı sahibi olduğu yazı, resim vb. ürünleri kullanması durumunda, her türlü hukuki ve cezai sorumluluk kendilerine aittir. Söz konusu haksız kullanım nedeniyle SANALKURS .NET'in hiçbir hukuki sorumluluğu bulunmamakta olup, haksız kullanım nedeniyle SANALKURS.NET'in üçüncü kişilere ödemek zorunda kalabileceği her türlü tazminat ve/veya adli/idari para cezaları ilgili Sanalkurs kullanıcılarından rücu edilecektir.
 İSTATİSTİKLER
XML Kaynağımızdan yararlanarak sitemizdeki derslerimizi masaüstünüzden yada web sitenizden takip edebilirsiniz
ÇEVRİMİÇİ 83 Ziyaretçi, 14 Üye (2 Gizli)
Necati Özden, durgun_deniz, Archididae, soldier_159, melekdasci, el!f, muzy42, ilhanilk, angel6, bilalözdemir, onecome, kemankes
BUGÜN DOĞUM GÜNÜ OLAN ÜYELERİMİZ:
Alyyone (22), omer1957 (52), the_manyak (109), sevketkaya (26),
Bugün: 582, Dün: 5271, Bu Ay: 96206, Toplam Ziyaret: 1794485, Toplam Üye: 130062, Son Üye: rcs
Toplam Ders: 1978, Toplam Yazar: 44, Toplam Dosya: 34, Toplam Link: 54
   
RSS Kaynağımızdan yararlanarak sitemizdeki derslerimizi masaüstünüzden yada web sitenizden takip edebilirsiniz