1. 0

PHP ile yazdığım bir proje var. Formdan gelen kullanıcı avatarlarını kare şeklinde kesip kaydediyorum. Localhost'ta sorunsuz çalışıyor fakat projeyi sunucuya attığımda thumbnailler oluşmuyor.

Başta klasör yazma izinleriyle ilgili olabileceğini düşündüm fakat hepsini 777 yapmama rağmen düzelmedi, sorun ne olabilir?

Kullanılanlar PHP, CodeIgniter, Imagine (resimleri kesmek için kullanılan kütüphane)

İlgili kod kısmı:

..
$imagine = new Imagine\Gd\Imagine();
$size    = new Imagine\Image\Box(256, 256);
$mode    = Imagine\Image\ImageInterface::THUMBNAIL_INSET;

$imagine->open($file)
    ->thumbnail($size, $mode)
    ->save('/uploads/avatars/256/' . $filename);
4 yanıt
  1. 1
    Utku Güner
    Backend Developer · 5 ay önce

    Aklıma üç ihtimal geliyor.

    1. Yazma izinleri

    Bunu denediğin için geçelim.

    2. php.ini

    Imagine kütüphanesi büyük ihtimal dosya uzantılarıyla çalışıyor. Bunun için php.ini dosyasındaki

    ;extension=php_fileinfo.dll

    satırının başındaki noktalı virgülü kaldırın, dosyayı kaydedin ve apache'yi (ya da sunucunuz her neyse) tekrar başlatın.

    Örneğin linux ortamında

    sudo service apache2 restart

    3. GD kütüphanesi

    PHP resim işleme işlemleri için GD kütüphanesini kullanıyor. Sunucu ortamında PHP kurulumuna bu eklenmemiş olabilir. Yüklemek için

    sudo apt-get install php-gd

    veya

    sudo apt-get install php5-gd

    şeklinde yükleyebilirsin. PHP sürümüne uygun olanı yüklediğinize emin olun ve yükledikten sonra php'yi ve apache'yi (ya da sunucunuz her neyse) tekrar başlatın;

    service php restart
    service apache2 restart
    1. 0

      Teşekkürler

    2. 1

      Sorun düzeldi mi?

    3. 0

      Evet gd kütüphanesi yüklü değilmiş :) Yazmasanız nasıl çözerdim bilmiyorum. Eyvallah..