• 23-01-2015, 20:28:28
    #1
    Kimlik doğrulama veya yönetimden onay bekliyor.
    Arkadaşlar form ile resmi alıp kaydetmek ve thumbnail oluşturmak istiyorum ama nedense kayıt yapamıyorum. Koddaki hata nerede bakabilir misiniz?

    if (isset($_POST['image'])) {
    
    
    $filename = $_FILES['image']['name'];
    $temporary_name = $_FILES['image']['tmp_name'];
    $mimetype = $_FILES['image']['type'];
    $filesize = $_FILES['image']['size'];
    switch($mimetype) {
        case "image/jpg":
        case "image/jpeg":
            $i = imagecreatefromjpeg($temporary_name);
            break;
        case "image/gif":
            $i = imagecreatefromgif($temporary_name);
            break;
        case "image/png":
            $i = imagecreatefrompng($temporary_name);
            break;
    }
    unlink($temporary_name);
    $zaman=time();
    imagejpeg($i,"answers/cevap$time.jpg",90);
    
    $dest_x = 200;
    $dest_y = 200;
    if (imagesx($i) > $dest_x or imagesy($i) > $dest_y) {
        if (imagesx($i) >= imagesy($i)) {
            $thumb_x = $dest_x;
            $thumb_y = imagesy($i)*($dest_x/imagesx($i));
        } else {
            $thumb_x = imagesx($i)*($dest_y/imagesy($i));
            $thumb_y = $dest_y;
        }
    } else {
        $thumb_x = imagesx($i);
        $thumb_y = imagesy($i);
    }
    $thumb = imagecreatetruecolor($thumb_x,$thumb_y);
    imagecopyresampled($thumb, $i ,0, 0, 0, 0, $thumb_x, $thumb_y, imagesx($i), imagesy($i));
    imagejpeg($thumb, "answers/thumb_$time.jpg", 90);
    
    
    
    
    
    }
  • 23-01-2015, 20:39:13
    #2
    Upload mı ediyorsunuz, yoksa mevcut bir resmi mi crop vs. işlemi yapıyorsanız. Eğer upload yapıyorsanız, multi/part olarak post işlemi yapmıyorsanız bir onu deneyin derim.
  • 23-01-2015, 20:43:58
    #3
    <form action="index.php?page=xxx&q=<?php echo $question[id]; ?>" method="post" enctype="multipart/form-data" >


    <input type="file" name="image" id="imageInput">


    şeklinde post ediyorum.
  • 24-01-2015, 19:17:41
    #4
    WideImage diye bir sınıf var, php'nin gd extension'unu çok güzel derlemişler.
    Upload edilen fotoyu çok kolay bir şekilde Kırpıp küçültüp istediğin yere kaydedebilirsin. Bu şekilde klasik yöntemle yapıp işi çorba yapmak yerine, bir sınıf oluşturursun, resim oluşturma, resim güncelleme ve resim silme gibi fonksiyonlar oluşturursun, hem işi kolaylaştırırsın hem de sınıfı dilediğin yerde kullanırsın.

    Aşağıdaki Gibi Bir Formumuz Olsun

    <form role="form" enctype="multipart/form-data" method="post">
       <input type="file" name="inputName">
    </form>
    Örnek Basit Bir Sınıf Yazalım.

    <?php 
    // WideImage sınıfını çağıralım
    require_once 'wideimage/WideImage.php'; 
    // Sınıfımızın Adı ImageController olsun 
    class ImageController {
       /*
       $inputName // Formda Vereceğin inputun Adı Örnek <input type="file" name="inputName">
       $resizeHeight // Küçülteceğin Resmin Yüksekliği
       $resizeWidth // Küçülteceğin Resmin Genişliği
       $newImage // oluşturacağın Yeni Resmin Adı, Burada uzantıyı da eklemeyi unutma. Örnek yeni-resim.png
       */ 
       public function resizeUploadedImage($inputName,$resizeHeight,$resizeWidth,$newImage){ 
          $uploadedImage = WideImage::loadFromUpload($inputName)->resize($resizeWidth, $resizeHeight, 'inside');
          $uploadedImage->saveToFile('/kaydedecigin/klasor/yolu/'.$newImage.''); 
       } 
    }
    
    // Kullanımı
    $img = new ImageController();
    $img->resizeUploadedImage('inputName',200,150,'yeni-resim.jpg');
    Kodun Çalışacağının Garantisi Yoktur. Yardımcı Olmak Ve Mantığını Kavramak İçin Yazılmıştır.

    (Bknz: GD IMage | WideImage )
  • 24-01-2015, 19:42:34
    #5
    Teşekkürler. Oldukça yardımcı oldu.
  • 24-01-2015, 19:49:06
    #6
    asimus adlı üyeden alıntı: mesajı görüntüle
    Teşekkürler. Oldukça yardımcı oldu.
    Bilgi paylaşınca güzel. Yardımcı olabildiysek ne mutlu (: