Selamlar...
Php ile dosya nasıl yüklenir ona bakalım.. Öncelikle dosya (file) input'u içeren bir form hazırlamalıyız. Form hazırlarken , diğer formlardan farklı olarak , dosya yükleneceği (upload) için , form etiketine enctype="multipart/form-data" parametresini eklememiz gerekiyor.
<form class="box" action="" method="post" enctype="multipart/form-data">
<h2>PHP Dosya Yükleme</h2>
<div> <input type="file" name="dosya"> </div>
<button type="submit"> YÜKLE </button>
</form>
Dosya seçildiği zaman , sunucudaki tmp klasörüne alınır. $_FILES nesnesi ile dosyanın seçilip seçilmediğini kontrol edebilir,, seçildiyse dosya özelliklerine ulaşabiliriz. Dosya input'ları diğer form elemanlarından farklı olarak, POST ile değil FILES nesnesi ile işlenir..
if( isset($_FILES["dosya"]) ) {
echo " Dosya Seçildi..";
}
else {
echo " Dosya Seçildmedi..";
}
Yukarıdaki if bloğu dosyanın seçilip seçilmediğini kontrol eder. Dosya seçilirse FILES nesnesi oluşacaktır. Dolayısıya isset($_FILES["dosya"]) ile varlığını kontrol edebiliriz. Form içindeki dosya input'unun adını (name) "dosya" yaptığımızı unutmayın.
$_FILES["dosya"] seçkisinin sonuna eklenen parametreler ile dosya bilgilerini alabiliriz.
echo "<h2> Seçilen Dosya Bilgileri </h2>";
echo "<b>Dosya Adı : </b>".$_FILES['dosya']['name'];
echo "<br><b>Dosya Geçici Yolu ve Adı : </b>".$_FILES['dosya']['tmp_name'];
echo "<br><b>Dosya Boyutu : </b>".round($_FILES['dosya']['size']/1024)."KB";
En çok kullanacağımız dosya bilgileri ;
Yukarıda , dosya boyutu 1024'e bölünerek KB birimine çevriliyor. round() fonksiyonu ile yuvarlanarak , tam sayıya dönüşüyor..
Gelelim seçilen dosyanın istediğimiz konuma , istediğimiz isimle yüklenmesine. Bunun için move_uploaded_file() komutunu kullanacağız. Bu komutla seçilen dosya tmp klasöründen alınacak ve istediğimiz yere taşınacak. Ama önce yerimizi ve adı belirleyelim.
//dosyanın yükleneceği yol ve dosya adı.. Klasör = upload
$yuklenecekdosya ="upload/". $_FILES['dosya']['name'] ;
echo "<br><b>Dosyanın Yükleneceği Yol ve Dosya Adı : </b>".$yuklenecekdosya;
Buarada , dosyanın yükleneceği klasörü "upload" olarak belirleyip , dosyanın kendi orjinal adıyla ($_FILES['dosya']['name'] ) birleştirdik. Dosya adı başka bir şeyde olabilir. tamamen size kalmış.Örneğin random bir sayı üretip, dosya adı yapabilirsiniz. Dilerseniz klasörde belirtmeyebilirsiniz. Ancak bu kez dosya , sayfa ile aynı yere taşınır. Derli toplu bir site klaösrlemesi için , dosyaların kendilerine has bir klasörde olmaları daha doğru olur.
Sonuçta yükleme tamamlandığında, dosya yukarıdaki $yuklenecekdosya değişkeninde belirtildiği gibi yerine yerleşecek.
Dosyanın yeni yerini ve ismini belirlediğimize göre artık taşıyabiliriz.
move_uploaded_file($_FILES['dosya']['tmp_name'], $yuklenecekdosya);
Kod bloğu çalıştığında seçilen dosya tmp klasöründen alınarak , yeni oluşturduğumuz yere taşınmış olur. Dolayısıyla yükleme işlemi tamamlanmış olacaktır.
Tüm aşamaları bir araya getirirsek , dosya yüklemek için yazmamız gereken php bölümü aşağıdaki gibi olur.
<?php
if ( isset($_FILES["dosya"]) ) {
// Dosya seçildiğinde temp klasörüne alınır ve bir isim verilir.. (tmp_name)
// seçilen dosya bilgileri
echo "<h2> Yüklenen Dosya Bilgileri </h2>";
echo "<b>Dosya Adı : </b>".$_FILES['dosya']['name'];
echo "<br><b>Dosya Geçici Yolu ve Adı : </b>".$_FILES['dosya']['tmp_name'];
echo "<br><b>Dosya Boyutu : </b>".round($_FILES['dosya']['size']/1024)."KB";
//dosyanın yükleneceği yol ve dosya adı.. Klasör = upload
$yuklenecekdosya ="upload/". $_FILES['dosya']['name'] ;
echo "<br><b>Dosyanın Yükleneceği Yol ve Dosya Adı : </b>".$yuklenecekdosya;
//dosya yükleme
move_uploaded_file($_FILES['dosya']['tmp_name'], $yuklenecekdosya);
/* geçici dosyayı alıp , $yuklenecekdosya değişkeni ile belirlediğimiz
klasöre verdiğimiz isim ile kaydeder..*/
}
else { echo "<h3> Dosya Seçilmedi! </h3>"; }
?>
Php bölümünü Formdan önce yada sonra yazabilirsiniz. Ben bu uygulamada formdan sonra yazdım. Dolayısıyla dosya blgileri form altında gösterildi.
Sayfadaki Css özellklerini de eklemek isterseniz.. buyrun..
<style type="text/css">
body {background-color: #eee;height:auto;}
.box {
padding:1rem;width:80%; margin:2rem auto;font-family: calibri;
border:1px dashed #ccc;
}
h3 {color:#dd3a00}
input {border:1px solid #ccc; padding:.5rem}
button{
margin-top:1.5rem;background:#dd3a00;color:#fff;
padding:.5rem 2rem ;cursor: pointer; border:none
}
@media (max-width:650px) {html{font-size: 13px}}
</style>
Aşağıdaki uygulamayı indir butonuyla uygulamayı indirebilirsiniz..
Sevgiler..
hocam yapamadm :(
0 0 YanıtlaSebep?
0 0 Yanıtladosyayı hangi klasöre yüklediğimiz önemli mi?
0 0 YanıtlaDeğil. Yolunu düzgün belirtmen yeterli!
0 0 YanıtlaToplam 33 Makale
Lütfen yorumlarınızda saygılı, yapıcı ve anlaşılır bir dil kullanın.
Küfür, hakaret ya da spam içerikler onaylanmaz.