Php ile resim Upload (Yükleme ) etme

Merhaba, bu yazımızda php ile resim upload işlemini verot upload classını kullanarak yapacağız.

Verot upload Class’ını her projemde mutlaka kullanırım. Hem kullanımı rahat hemde onlarca özelliği var.

Bu class ‘ı  kullanarak resimlerinizi upload ederken, resmi döndürebilir, üzerine yazı yazabilir, resim ( watermark ) ekleyebilir, resminize yansıma effekti verebilir aynı zamanda boyutunuda ayaryabilirsiniz.Tabiki bu kadarla sınırlı değil 🙂 Lafı uzatmadan Class ‘ın kullanımına geçelim.

Öncelikle resmi upload etmek için bir form sayfası oluşturalım ben hızlıca birşeyler ayarladım :

yeni bir metin belgesi açın ve içine aşağıdaki kodları yapıştırın,  adınıda index.html olarak kaydedin.


<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Resim Upload Örneği</title>
</head>

<body>


<table width="500px" border="0">


<tr>


<td>

<form action="upload.php" method="post" enctype="multipart/form-data" name="upload" id="upload">


<table width="100%" border="0">


<tr>


<td colspan="3">Resim Upload Örneği | Ferhat YEŞİLMEN</td>


 </tr>




<tr>


<td width="33%"> Resim Seçiniz</td>




<td width="2%">:</td>




<td width="65%"><label for="resim"></label>
 <input type="file" name="resim" id="resim" /></td>


 </tr>




<tr>


<td>&nbsp;</td>




<td>&nbsp;</td>




<td><input type="submit" name="yukle" id="yukle" value="Yükle" /></td>


 </tr>


 </table>


 </form>

</td>


 </tr>


</table>


</body>
</html>

Şimdide Upload işlemlerini yapacağımız upload.php ‘ yi yapalım.

Yine aşağıdaki kodları bir metin belgesine kayıt edin ve adını upload.php olarak değiştirin.


<?php /* Php ile Resim upload ( Yükleme ) Etme Örneği Kullanılan Class : Verot Upload Class Anlatım : Ferhat YEŞİLMEN www.ferhatyesilmen.com */ require_once ('class.upload.php'); // Class ' ımızı dahil ediyoruz. $resim = $_FILES['resim']; // Form'dan yüklenen resim. $yukle = new upload($resim); //Sınıfımızı Başlatıyoruz. $klasor = './resimler'; //Resmin Yükleneceği Klasör if ($yukle->uploaded) {  // Upload İşlemi Başarılı olursa aşağıdaki işlemleri yapacak
 $yukle->image_resize = true;
 $yukle->image_x = 250;
 $yukle->image_y = 200;
 $yukle->file_new_name_body = 'upload';
 $yukle->process($klasor);
 if ($yukle->processed) { // İşlemler Başarılı olursa
 echo 'Resim Yüklendi ve İşlemler Uygulandı.';
 echo $yukle->file_dst_name;
 $yukle->clean();
 } else { // Başarılı olmadığı durumda
 echo 'Hata resim yüklenemedi. : ' . $yukle->error;
 }
 }

?>

 

Bunları oluşturduktan sonra ekten indireceğiniz upload classınıda dizinin içine atın.

Aynı dizinde resimler adında yeni bir klasor ekleyin.

dosyayı çağırdığınızda nasıl çalıştığını görebilirsiniz. Biz burda sadece resmin boyutunu küçültüp ismini değiştirdik.

Şimdide classımızın Bir kaç özelliğini inceliyelim.

Üzerinde çalışacağımız resim polis logosu 🙂

Resmimizin üzerine bir yazı yazalım:

upload.php ‘deki kod satırını aşağıdaki gibi değiştiriyoruz:


if ($yukle->uploaded) {  // Upload İşlemi Başarılı olursa aşağıdaki işlemleri yapacak
 $yukle->image_text            = 'Ferhat YESILMEN';
 $yukle->image_text_color      = '#000000';
 $yukle->image_text_percent    = 80;
 $yukle->image_text_background = '#FFFFFF';
 $yukle->image_text_background_percent = 70;
 $yukle->file_new_name_body = 'upload';
 $yukle->process($klasor);
 if ($yukle->processed) { // İşlemler Başarılı olursa
 echo 'Resim Yüklendi ve İşlemler Uygulandı.';
 echo $yukle->file_dst_name;
 $yukle->clean();
 } else { // Başarılı olmadığı durumda
 echo 'Hata resim yüklenemedi. : ' . $yukle->error;
 }
 }

Kodları değiştirdikten sonra resmimizi seçip Yükle ‘ ye bastığımızda şu sonucu elde ettik :


Gördüğünüz Gibi Resmin üzerinde Ferhat YESILMEN yazıyor. Yazının konumuda ayarlayabilirsiniz.

Konumla ilgili birşey yazmadığınızda yazı resmin tam ortasında olacaktır.

şu kodu eklediğinizde yazının konumunu belirleyebilirsiniz ;

$yukle->image_text_position   = 'B'; //Bottom (aşağı)

Burda 4 farklı değeri kullanabiliyoruz ;


T   : En üste Ortada
B  :  En alta Ortada
L  : Solda
R : Sağda

TL  : En üst ve solda
TR : En üst ve sağda
BL : Aşağıda ve solda
BR : Aşağıda ve sağda

Şimdide resmimize yansıma ekliyelim : ben 50% lik bir yansıma ekliyorum. Siz ihtiyacınıza göre azaltıp – artırabilirsiniz.

$yukle->image_reflection_height = '50%';

Evet arkadaşlar gördüğünüz gibi çok kullanışlı bir class resim upload işleriniz oluyorsa bunu gönül rahatlığıyla kullanabilirsiniz.

Çalışmayı burdan indirebilirsiniz :  (Class ‘ ta içinde)

Php Photo Upload (790 indirme)

Diğer Özelliklerine burdan ulaşabilirsiniz.

İyi çalışmalar..

Php ile resim Upload (Yükleme ) etme” için 21 yorum

  • Geri bildirim: Anonim

  • 3 Ekim 2012 tarihinde, saat 20:07
    Permalink

    merhaba güzel paylaşım saol denedim çalışıyor ama bir şeyi beceremedim bu sistemde aynı isimde resim olunca otomatik _1,_2 diye yükseltiyor bu çok güzel ama ben bunu veritabanına bağlamıştım. upload edilen resim bir artıyor ama veritabanına bu resmin ismini alamıyorum bunun ne yapabilirim sence…

    Yanıtla
    • 4 Ekim 2012 tarihinde, saat 22:44
      Permalink

      Hocam veritabanına $yukle->file_dst_name; Değerini yazdırırsanız o anki isim neyse onu yazmış olursunuz.

      Yanıtla
  • 27 Kasım 2012 tarihinde, saat 01:08
    Permalink

    iyi çalışmalar güzel ve de yararlı bir bilgi olmuş peki bu upload çalışmasına birkaç bilgi daha ekleyebilir misiniz mesela bir defade birden fazla resim ekleme işlemi ve resim silme işlemi nasıl yapılabilinir

    Yanıtla
  • 13 Aralık 2012 tarihinde, saat 21:08
    Permalink

    İyi çalışmalar, çalışmanızı inceledim ve sitemde kullanacağım.Fakat resim boyutlarında sıkıntı yaşıyorm. 1 mb lık bir resmi yükleyemiyorum. bunun bir çözümü var mı acaba? Teşekkür ederim.

    Yanıtla
  • 23 Ocak 2013 tarihinde, saat 12:12
    Permalink

    selam bes bunda nasil resim ayarlarni yaba biliriz yani mesala resim jpg ve ya png olursa upload olsun olmazsa olmasinj ve ya bize jpg deyilde pdf ve ya baska bir file uplaod yapmaq istesek nasil yaoa biliri?

    sonra ayni resmi iki farqli olcude upload etmek mumkunmu ? ve nasil

    Yanıtla
  • 28 Nisan 2013 tarihinde, saat 14:26
    Permalink

    hocam sadece kullanmak istediğiniz yerimi çağıyorsunuz classa?o yüzden mi upload.php yi oluşturuduk

    var $degisken; diye bişey kullanılmış bu ne anlamdadır.
    birde if ($yukle->uploaded) ne anlamdadır. -> kodu clasdan bir değişken yada fonksiyon cagırmak için diye biliyorum fakat this kodu nerde

    Yanıtla
    • 4 Mayıs 2013 tarihinde, saat 14:18
      Permalink

      Merhaba,

      require_once ('class.upload.php');
      

      hocam bu kod ile class dosyamızı çalışma sayfamıza çağırıyoruz.

      $yukle = new upload($resim);

      Bu kod ilede classımızı $yukle değişkenine atıyoruz.
      bundan sonrada $yukle->fonkisyonadi(); gibi kullanım ilede classın içindeki fonskiyonları kullanabiliyoruz.İyi Çalışmalar.

      Yanıtla
  • 2 Ekim 2013 tarihinde, saat 17:43
    Permalink

    Öncelikle merhabalar çalışmalarından ötürü sonsuz teşekkürler benim konum biraz farklı asagıda kodlarını verdigim bir profil resmi güncelleme sorunu bu konu hakkında yardımınızı bekliyorum sayın yeşilmen

    <?php
    if($_POST){
    $id = mysql_real_escape_string($_POST["id"]);
    $baslik = strip_tags($_POST["baslik"]);
    $icerik = $_POST["icerik"];
    $resim1 = strip_tags($_POST["resim1"]);
    $resim = $_FILES["resim"]["tmp_name"];
    $resimadi = $_FILES["resim"]["name"];
    if($resimadi == ""){
    $resim3 = $resim1;
    }else{
    $resim2 = substr($resim1,37);
    $hedef = "../bolumler/resimler/programcilar";
    $hedef1 = "bolumler/resimler/programcilar/";
    $resim3 = $hedef1.$resim2;
    $yukle = move_uploaded_file($resim,$hedef.'/'.$resim2);
    }

    Kod bu, aldıgım hata ise asagıda verdigim linkte

    http://m1310.hizliresim.com/1g/1/t5gnb.jpg

    Yanıtla
  • 14 Şubat 2014 tarihinde, saat 19:30
    Permalink

    Hocam Bu konuda size soracağım upload formu çalışıyor fakar ben gönderdiğim resmi sunucudaki resim ile değişmesini istiyorum yani aynı ismi verdiğim bir resmi upload ettiğimde sunucuca aynı isimli resimin üzerine yazsın istiyorum. Bunun için kodlama nasıl omalı?

    Yanıtla
  • 25 Mart 2014 tarihinde, saat 11:35
    Permalink

    Allah razı olsun çok güzel bir paylaşım. Teşekkür ederim

    Yanıtla
  • 14 Mayıs 2014 tarihinde, saat 18:50
    Permalink

    iyi günler sitemdeki temaya resim yükleme butonunu entegre etmek için yardımcı olurmusunuz..tesekkurler

    Yanıtla
  • 30 Haziran 2014 tarihinde, saat 16:06
    Permalink

    peki yükledikten sonra resimin url sinide gsterse
    örneğin:
    http://abc.com/resim/resimler/upload.jpg

    bu arada teşekkürler

    Yanıtla
  • 3 Temmuz 2014 tarihinde, saat 19:37
    Permalink

    çok işime yaradı teşekkürler 🙂

    Yanıtla
  • 7 Eylül 2015 tarihinde, saat 22:36
    Permalink

    Merhaba Ferhat Bey,
    Benim bir sohbet veb sayfam var. Bu sayfayada gulen surat gibi ozellik var fakat her yeni bir ifade (surat) yükleyecegimde ftp ye girip emoticion klasoruneatmak zorunda kalıyorum. Benim isteyeceğim ise admin panelime bir buton oluşturup ordan yuklemek istiyorum. Bu mümkün mu Lütfen bana yardim edin şimdiden teşekkürler

    Yanıtla
  • 29 Aralık 2015 tarihinde, saat 20:12
    Permalink

    PHP Warning: preg_match(): Compilation failed: invalid range in character class at offset 7 in C:Inetpubvhostsestepoint.com.trhttpdocsresimclass.upload.php on line 2667
    PHP Warning: preg_match(): Compilation failed: invalid range in character class at offset 7 in C:Inetpubvhostsestepoint.com.trhttpdocsresimclass.upload.php on line 2685

    diye hata alıyorum.
    teşekkürler

    Yanıtla
  • 13 Mart 2016 tarihinde, saat 02:39
    Permalink

    sitemde fotoğraf ekleme bölümünde çoklu seçim seçeneği mevcut fakat profesyonel makinayla çekilen fotoğrafları çoklu yükleyemiyor yavaş kaldığı için zaman aşımına uğruyor ve yükleyemiyor bu sorunu nasıl aşabilirim acaba ? profesyonel destek alabilirim yardımcı olursanız sevinirim.

    Yanıtla
    • 3 Nisan 2016 tarihinde, saat 23:21
      Permalink

      sunucunuzun timeout süresi uzatabilirsiniz ancak bence en doğru çözüm; Fotoğrafların optimize edildikten sonra upload edilmesi. Online optimize siteleri veya ücretsiz bu işi yapabilecek programlar mevcut.

      Yanıtla
  • 22 Kasım 2016 tarihinde, saat 20:31
    Permalink

    teşekkürler hocam saolun 🙂

    Yanıtla
  • 13 Ağustos 2017 tarihinde, saat 22:25
    Permalink

    Notice: A non well formed numeric value encountered in C:\xampp\htdocs\resim\resim\class.upload.php on line 3085

    Warning: preg_match(): Compilation failed: invalid range in character class at offset 7 in C:\xampp\htdocs\resim\resim\class.upload.php on line 2859

    Warning: preg_match(): Compilation failed: invalid range in character class at offset 7 in C:\xampp\htdocs\resim\resim\class.upload.php on line 2886

    Warning: preg_match(): Compilation failed: invalid range in character class at offset 7 in C:\xampp\htdocs\resim\resim\class.upload.php on line 2904

    Notice: A non well formed numeric value encountered in C:\xampp\htdocs\resim\resim\class.upload.php on line 4680

    Fatal error: Allowed memory size of 134217728 bytes exhausted (tried to allocate 16384 bytes) in C:\xampp\htdocs\resim\resim\class.upload.php on line 3150

    Bu hataları alıyorum yardımcı olabilir misiniz

    Yanıtla

Bir cevap yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir