<?php if($_POST){//Form gönderildi mi? if ($_FILES["resim"]["size"]<1024*1024){//Dosya boyutu 1Mb tan az olsun if ($_FILES["resim"]["type"]=="image/jpeg"){//dosya tipi jpeg olsun $aciklama=$_POST["aciklama"]; $dosya_adi=$_FILES["resim"]["name"]; //Dosyaya yeni bir isim oluşturuluyor $uret=array("as","rt","ty","yu","fg"); $uzanti=substr($dosya_adi,-4,4); $sayi_tut=rand(1,10000); $yeni_ad="dosyalar/".$uret[rand(0,4)].$sayi_tut.$uzanti; //Dosya yeni adıyla dosyalar klasörüne kaydedilecek if (move_uploaded_file($_FILES["resim"]["tmp_name"],$yeni_ad)){ echo 'Dosya başarıyla yüklendi.'; //Bilgiler veri tabanına kaydedilsin $sorgu=mysql_query("insert into resimler (resim,aciklama) values ('$yeni_ad','$aciklama')"); if ($sorgu){ echo 'Veritabanına kaydedildi.'; }else{ echo 'Kayıt sırasında hata oluştu!'; } }else{ echo 'Dosya Yüklenemedi!'; } }else{ echo 'Dosya yalnızca jpeg formatında olabilir!'; } }else{ echo 'Dosya boyutu 1 Mb ı geçemez!'; } } ?> <form action="" method="post" name="form1" enctype="multipart/form-data"> <input type="file" name="resim"/><br/> <input type="text" name="aciklama"/><br/> <input type="submit" name="gonder" value="Kaydet"/> </form>Ek olarak şunları söylemek istiyorum ki bu fonksiyon çok da güvenli değil. Yani biz bunu eğer bir kullanıcı etkileşimli sayfada kullanıcıya resim seçtirmek için kullanırsak sitemize kahkaha atarak girerler. Gerekli dosya uzantı kontrollerinin yapıldığından emin olmalıyız. Bu fonksiyon ile bir makale eklemek isterseniz şayet , makale yalnızca resimli halinin çıktısını verir , diğer türlü resim yüklenemedi hatası verir ve içeriği eklemez. Bunun için lastinsertid() fonksiyonu ile yukarıda bir mantık yürüteceksiniz ve eğer resim yüklenmememiş ise normal bir insert metodu , yüklenmiş ise ayrı bir update metodu yazacaksınız.Böylece ister resimli ister sade içerikler üretebilirsiniz.
Php ile gerek blog projelerinizde gerek kurumsal projelerde , panellerde resim yüklemek gerekebiliyor. Kendi adıma söyleyecek olursam bu fonksiyonu oturup tek başıma yazmam. Bunun için hazır fonksiyonlar mevcut ve bizde bunu kullanarak gerek kullanıcıya gerek kendimize formdan submit ettirerek sadece kodu copy paste edere dosya yükleyebileceğiz. Burada resmi yüklemek için en temel şartlardan bir tanesi enctype=”multipart/form-data” özelliğidir. Bu özelliği formumuza eklemezsek bir dosya akışı söz konusu olamaz. Aşağıda kendi projelerimde kullandığım bir resim yükleme fonksiyonu var.