CakePHP'de görüntüyü kurtarmak için nasıl

1 Cevap php

Ben tabloda resim upload yanı sıra folder.please i klasör ve veritabanı görüntü kaydetmek nasıl, bana yardım etmelisin. yöntemi açıklayınız.

Thanks Manish

1 Cevap

Siz PHP "her zamanki gibi" bunu yapabilirsiniz. Ben sadece bu gibi bir kaç gün önce yaptım:

$path = "/img/avatars/";
$dir = getcwd().$path;
$avatarFile = "$dir$id.png";

if (isset($this->data['User']['avatar']) && $this->data['User']['avatar']['error'] == 0) {
                $avatar = $this->data['User']['avatar'];
                if (!is_uploaded_file($avatar['tmp_name'])) $this->Utils->panic($avatar);

                if (in_array($avatar['type'], array('image/jpeg','image/pjpeg','image/png'))) {

                    // load image
                    list($width,  $height) = getimagesize($avatar['tmp_name']);
                    $width = $height = min($width, $height);

                    if (in_array($avatar['type'], array('image/jpeg','image/pjpeg')))
                        $source = imagecreatefromjpeg($avatar['tmp_name']);
                    else
                        $source = imagecreatefrompng($avatar['tmp_name']);

                    // resize
                    $thumb = imagecreatetruecolor(128, 128);
                    imagecopyresized($thumb,  $source,  0,  0,  0,  0,  128,  128,  $width,  $height);

                    // save resized & unlink upload
                    imagepng($thumb, $avatarFile);

                    $success &= true;
                } else {
                    $this->User->invalidate('avatar', __("Only JPG or PNG accepted.",true));
                    $success &= false;
                }

                unlink($avatar['tmp_name']); // Delete upload in any case
            }

Hatta her zaman 128x128, bunu atlayabilirsiniz ve sadece hedef dir yüklenen görüntüyü yeniden adlandırmak için yeniden boyutlandırmak için gidiyor. Google da size yardımcı olacaktır, dosya yüklemeleri için özel bir şey Kek yoktur.

Yükleme formu:

echo $form->create('User', array(
    'enctype' => 'multipart/form-data',
    'type' => 'post',
));
echo $form->input('avatar', array('type' => 'file', 'label' => __('Avatar:',true)));