Thanks

On Sat, Mar 30, 2013 at 11:50 PM, Chris <[email protected]> wrote:

> this is how I upload images and create thumbs in any sizes without any
> plugin,... of course you have to modify to your own needs,... don't forget
> to create subdirectories in webroot/photos/ original,... thumbs,... etc,...
> and chmod to 777
>
> function upload in photos_controller:
>
>
>   function upload()
>   {
>     $this->authorize();
>
>     $user = $this->User->findById($this->user['id']);
>
>
>     if(!($user && ($user['User']['photos_limit'] == 0 ||
> $user['User']['photos'] < $user['User']['photos_limit'])))
>     {
> exit('You reached your upload limit');
>     }
>     else
>     {
>       $fileParts = $_FILES['Filedata']['name'];
>       $secret = $this->generateRandomString(20);
>       $name = str_replace(array('.jpg', '.jpeg', '.JPG', '.JPEG', '.png',
> '.PNG'), '', $fileParts);
>
>       if($this->Photo->save(array('Photo' => array('name' => $name,
> 'user_id' => $this->user['id'], 'secret' => $secret, 'hidden' => 0,
> 'privacy' => array_search($_GET['privacy'],
> Configure::read('Site.privacy'))))))
>       {
>         $this->User->query('UPDATE fociki_users' .
>         ' SET photos = photos + 1' .
>         ', last_public_photo = (SELECT created FROM fociki_photos WHERE
> user_id = ' . $this->user['id'] . ' AND fociki_photos.privacy <= ' .
> array_search('public', Configure::read('Site.privacy')) .' ORDER BY created
> DESC LIMIT 1)' .
>         ', last_friend_photo = (SELECT created FROM fociki_photos WHERE
> user_id = ' . $this->user['id'] . ' AND fociki_photos.privacy <= ' .
> array_search('friend', Configure::read('Site.privacy')) .' ORDER BY created
> DESC LIMIT 1)' .
>         ' WHERE id = ' . $this->user['id']);
>
>
>         $original_file = $this->Photo->getOriginalFile($this->Photo->id,
> $secret, true);
>         $original_file_path = $original_file->pwd();
>         $tempFile   = $_FILES['Filedata']['tmp_name'];
>
>         move_uploaded_file($tempFile, $original_file_path);
>
>         exec('/usr/bin/convert -geometry 400x350 ' . $original_file_path .
> ' ' . $this->Photo->getMediumFile($this->Photo->id, $secret)->pwd() .' >
> /dev/null 2>&1 &');
>
>         exec('/usr/bin/convert -geometry 145x145 ' . $original_file_path .
> ' ' . $this->Photo->getSmallFile($this->Photo->id, $secret)->pwd() .' >
> /dev/null 2>&1 &');
>
>         exec('/usr/bin/convert -thumbnail x150 -resize "150x<" -resize 50%
> -gravity center -crop 75x75+0+0 +repage ' . $original_file_path . ' ' .
> $this->Photo->getSquareFile($this->Photo->id, $secret)->pwd() .' >
> /dev/null 2>&1 &');
>         exec('/usr/bin/convert -thumbnail x96 -resize "96x<" -resize 50%
> -gravity center -crop 48x48+0+0 +repage ' . $original_file_path . ' ' .
> $this->Photo->getBuddyFile($this->Photo->id, $secret)->pwd() .' > /dev/null
> 2>&1 &');
>
>         exec('/usr/bin/convert -geometry 500x450 ' . $original_file_path .
> ' ' . $this->Photo->getLargeFile($this->Photo->id, $secret)->pwd() .' >
> /dev/null 2>&1 &');
>
>       }
>
>       echo 'OK';
>       die();
>
>       }
>   }
>
>
> and here is the Model photo.php
>
> <?php
> class Photo extends AppModel {
>   var $name = 'Photo';
>
>     var $validate = array(
>      'user_id' => array(
>       'rule' => 'notEmpty'
>      ),
>      'name' => array(
>       'rule' => 'notEmpty'
>      ),
>  );
>
>   var $belongsTo = 'User';
>
>   var $hasMany = array(
>     'PhotoTag' => array('order' => array('tag' => 'ASC')),
>     'PhotoNote' => array('order' => array('created' => 'ASC')),
>   );
>
>
>
>   function getOriginalFile($id, $secret, $create = null, $chmod = null)
>   {
>     return new File(WWW_ROOT . 'photos' . DS . 'original' . DS . $id . '-'
> . $secret . '.jpg', $create, $chmod);
>   }
>
>   function getLargeFile($id, $secret, $create = null, $chmod = null)
>   {
>     return new File(WWW_ROOT . 'photos' . DS . 'large' . DS . $id . '-' .
> $secret . '.jpg', $create, $chmod);
>   }
>
>   function getMediumFile($id, $secret, $create = null, $chmod = null)
>   {
>     return new File(WWW_ROOT . 'photos' . DS . 'medium' . DS . $id . '-' .
> $secret . '.jpg', $create, $chmod);
>   }
>
>   function getSmallFile($id, $secret, $create = null, $chmod = null)
>   {
>     return new File(WWW_ROOT . 'photos' . DS . 'small' . DS . $id . '-' .
> $secret . '.jpg', $create, $chmod);
>   }
>
>   function getThumbFile($id, $secret, $create = null, $chmod = null)
>   {
>     return new File(WWW_ROOT . 'photos' . DS . 'thumb' . DS . $id . '-' .
> $secret . '.jpg', $create, $chmod);
>   }
>
>   function getSquareFile($id, $secret, $create = null, $chmod = null)
>   {
>     return new File(WWW_ROOT . 'photos' . DS . 'square' . DS . $id . '-' .
> $secret . '.jpg', $create, $chmod);
>   }
>
>   function getBannerFile($id, $secret, $create = null, $chmod = null)
>   {
>     return new File(WWW_ROOT . 'photos' . DS . 'banner' . DS . $id . '-' .
> $secret . '.jpg', $create, $chmod);
>   }
>
>   function getBuddyFile($id, $secret, $create = null, $chmod = null)
>   {
>     return new File(WWW_ROOT . 'photos' . DS . 'buddy' . DS . $id . '-' .
> $secret . '.jpg', $create, $chmod);
>   }
>
>
>   function beforeDelete()
>    {
>
>      $this->loadModels('PhotoComment', 'PhotoTag', 'PhotoFavorite',
> 'PhotoLike', 'PhotoDislike', 'Notification');
>
>      $photo = $this->findById($this->id());
>      $this->secret = $photo['Photo']['secret'];
>
>      foreach(array($this->getOriginalFile($this->id(), $this->secret),
> $this->getLargeFile($this->id(), $this->secret),
> $this->getMediumFile($this->id(), $this->secret),
> $this->getSmallFile($this->id(), $this->secret),
> $this->getThumbFile($this->id(), $this->secret),
> $this->getSquareFile($this->id(), $this->secret),
> $this->getBannerFile($this->id(), $this->secret),
> $this->getBuddyFile($this->id(), $this->secret)) as $file)
>      {
>        if($file->exists())
>          $file->delete();
>      }
>
>    return true;
>    }
>
>
>    function afterDelete()
>    {
>
>    }
>
>
> }
> ?>
>
> I hope it helps,... enjoy it,...
>
> On Saturday, March 30, 2013 6:16:12 PM UTC-7, Robert Gravel wrote:
>>
>> Hi All,
>> I am trying to use the cake_gallery plugin https://github.com/vitorpc/**
>> cake_gallery <https://github.com/vitorpc/cake_gallery>  for cake 1.3 but
>> for some reason the thumbnail is not generated. Seems some issue with
>> photo.php model??
>> In firebug i get some errors.
>> <b>Warning</b> (2)</a>: imagecreatetruecolor() [<a href='
>> http://php.net/function.**imagecreatetruecolor<http://php.net/function.imagecreatetruecolor>
>> '>**function.imagecreatetruecolor<**/a>]:
>> Invalid image dimensions [<b>APP\plugins\cake_gallery\**models\photo.php</b>,
>> line <b>104</b>]
>> I have GD on my server. same errors on my server as my xampp server.
>>
>> Anyone have any luck with this or can recommend a gallery plugin with
>> upload and thumb creation
>> Thank you
>> Robert
>
>  --
> Like Us on FaceBook https://www.facebook.com/CakePHP
> Find us on Twitter http://twitter.com/CakePHP
>
> ---
> You received this message because you are subscribed to the Google Groups
> "CakePHP" group.
> To unsubscribe from this group and stop receiving emails from it, send an
> email to [email protected].
> To post to this group, send email to [email protected].
> Visit this group at http://groups.google.com/group/cake-php?hl=en.
> For more options, visit https://groups.google.com/groups/opt_out.
>
>
>

-- 
Like Us on FaceBook https://www.facebook.com/CakePHP
Find us on Twitter http://twitter.com/CakePHP

--- 
You received this message because you are subscribed to the Google Groups 
"CakePHP" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To post to this group, send email to [email protected].
Visit this group at http://groups.google.com/group/cake-php?hl=en.
For more options, visit https://groups.google.com/groups/opt_out.


Reply via email to