Skip to content

Instantly share code, notes, and snippets.

@elialejandro
Created March 26, 2013 18:50
Show Gist options
  • Save elialejandro/5248058 to your computer and use it in GitHub Desktop.
Save elialejandro/5248058 to your computer and use it in GitHub Desktop.
<?php
class ImagesController extends Zend_Controller_Action
{
// ....
private function _upload($imageName = null)
{
$path = realpath(APPLICATION_PATH . '/../public/uploads/');
/*RECIBIENDO IMAGEN*/
$upload = new Zend_File_Transfer_Adapter_Http();
$upload->setDestination($path);
if ( !$upload->isUploaded() ) {
return is_null($imageName) ? null : $imageName;
}
if ( !is_null($imageName) && file_exists($path . "/" . $imageName) ) {
list($name, $ext) = explode(".", $imageName);
unlink( $path . '/' . $imageName);
if ( file_exists($path."/".$name."-260x180.".$ext )) {
unlink( $path."/".$name."-260x180.".$ext );
}
}
$fileinfo = $upload->getFileInfo();
switch ($fileinfo['imagen']['type']) {
case 'image/png':
$ext = 'png';
break;
case 'image/jpg':
case 'image/jpeg':
$ext = 'jpg';
break;
}
$name = time();
$filename = $name . '.' . $ext;
$upload->addFilter('Rename', array(
'target' => $path.'/'.
$filename,
'overwrite' => true
));
if ( !$upload->receive() ) {
$this->view->message = '<div class="error">'.
'Ha habido un problema:'.
$upload->getErrors().'</div>';
return null;
}
$imagen = new ZFImage_Image( $path."/".$filename );
if ( $imagen->getWidth() > $imagen->getHeight() ) {
$imagen->attach(new ZFImage_Fx_Resize(700));
} else {
$imagen->attach(new ZFImage_Fx_Resize(0,350));
}
$imagen->attach(new ZFImage_Fx_Crop(700, 350));
$src = $path."/".$filename;
if ( $imagen->getImageType() == IMAGETYPE_JPEG ) {
$imagen->imageJpeg($src,90);
} else {
$imagen->imagePng( $src);
}
$imagen = new ZFImage_Image( $path."/".$filename );
if ( $imagen->getWidth() > $imagen->getHeight() ) {
$imagen->attach(new ZFImage_Fx_Resize(0,180));
} else {
$imagen->attach(new ZFImage_Fx_Resize(260));
}
$imagen->attach(new ZFImage_Fx_Crop(260, 180));
$src = $path."/".$name."-260x180.".$ext;
if ( $imagen->getImageType() == IMAGETYPE_JPEG ) {
$imagen->imageJpeg($src,90);
} else {
$imagen->imagePng( $src);
}
return $filename;
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment