Buenas! Ante todo muchas gracias por responder.
La verdad es que si necesito leer mas, porque ya consegui resolverlo y he tenido que cambiar muchas cosas y la mayoria por despistes
.
No habia implementado clases aun en mis codigos, habia hecho normalmente webs modulares o trabajado con CMS , y la lie de tal forma, que ya habia una cantidad de aberraciones en el codigo que tela
.
Cuelgo aqui el codigo resultante. Al final no he podido hacerlo mas general y seguro que para nada esta completamente pulido y optimo pero al menos de momento funciona y poco a poco lo podre ir optimizando:
Código:
class image{
var $width=''; // ANCHO DE LA IMAGEN QUE VA A SER TRATADA
var $height=''; //ALTO DE LA IMAGEN QUE VA A SER TRATADA
var $img=''; // IMAGEN
var $imgName='';//NOMBRE DE IMAGEN
var $imgCopy='';
var $imgPath='images/';
var $imgDir=''; //DIRECTORIO DONDE SE ENCUENTRAN LAS IMAGENES
var $imgTemp=''; //IMAGEN COPIA PARA LA SUBIDA AL SERVIDOR
var $imgType=''; //EXTENSION DE LA IMAGEN
var $imgSize=''; //TAMAÑO EN BYTES DE LA IMAGEN
var $error='';
var $imgNewX=''; //ANCHO DEL THUMB
var $imgNewY=''; //ALTO DEL THUMB
var $thumb='';
var $thumbPath='thumbs/';
function setImg(){
$this->img=$_FILES['imagen'];
$this->imgName=$_FILES['imagen']['name'];
$this->imgTemp=$_FILES['imagen']['tmp_name'];
$this->imgType=$_FILES['imagen']['type'];
$this->imgSize=$_FILES['imagen']['size'];
}
function imgCheck(){
if(!(strpos($this->imgType,"gif") || strpos($this->imgType,"jpeg") || strpos($this->imgType,"jpg") || strpos($this->imgType,"png"))){
echo $this->error="La imagen debe tener como extension : JPEG, GIF, PNG.";
return false;
}else if($this->imgSize>200000){
echo $this->error="La imagen no puede exceder el tamaño de 200Kb";
return false;
}else return true;
}
function imgUpload(){
if(!move_uploaded_file($this->imgTemp,$this->imgPath.$this->imgName)){
echo $this->error="No se pudo realizar la subida al servidor... Int$eacute;ntelo pasado unos minutos";
return false;
}
}
function imgCheckDuplicated(){
if(is_dir($this->imgPath)){
$this->imgDir=opendir($this->imgPath);
while(false!==($imgFile=readdir($this->imgDir))){
if($imgFile==$this->imgName){
return 2;
}
}
@closedir($this->imgPath);
}
}
function imgLoadToResize($y){ //COMPRUEBA CUAL ES EL ARCHIVO SUBIDO Y GENERA EL THUMB . EL DATO A PASARLE ES LA ALTURA PUES DEBE SER FIJA.
if($this->imgCheckDuplicated()==2){
$this->imgDir=opendir($this->imgPath);
if(strpos($this->imgName,"jpg") || strpos($this->imgName,"jpeg")){
$this->imgCopy=imagecreatefromjpeg("".$this->imgPath.$this->imgName."");
}else if(strpos($this->imgName,"gif")){
$this->imgCopy=imagecreatefromgif("".$this->imgPath.$this->imgName."");
}else $this->imgCopy=imagecreatefrompng("".$this->imgPath.$this->imgName."");
$this->width=imagesx($this->imgCopy);
$this->height=imagesy($this->imgCopy);
$this->imgNewX=($this->width * ($y/$this->height));
$this->imgNewY=$y;
$this->thumb=imagecreatetruecolor($this->imgNewX,$this->imgNewY);
imagecopyresized($this->thumb,$this->imgCopy,0,0,0,0,$this->imgNewX,$this->imgNewY,$this->width,$this->height);
if(strpos($this->imgType,"gif")){
imagegif($this->thumb, $this->thumbPath.$this->imgName);
}else if(strpos($this->imgName,"jpg") || strpos($this->imgName,"jpeg")){
imagejpeg($this->thumb,"".$this->thumbPath.$this->imgName."");
}else imagepng($this->thumb, $this->thumbPath.$this->imgName);
closedir($this->imgDir);
}
}
}//FIN DE CLASE
El codigo para realizar de momento la subida del archivo y generar el thumb seria algo tal que asi(aun me gustaria poder esclarecerlo mas pero poco a poco jeje).
Código:
include ("imageClass.php");
$img=new image;
$img->setImg();
if($img->imgCheck()){
if($img->imgCheckDuplicated()!=2){
$img->imgUpload();
}else echo "el nombre de archivo ya esta ocupado";
}
$img->imgLoadToResize(150);
Como veis ha cambiado basicamente todo XDD, al principio tenia algo "similar" pero como no me funcionaba, me lo fui cargando hasta el resultado de arriba por desesperacion XD
.
Dejo colgado el codigo , por si a alguien le sirve de "ayuda" ya que siempre me ayudais y quiero poder empezar a aportar yo cosas