Bueno, no me atribuyo la autoría de este código, si compilarlo, ya que son piezas de varios códigos y me ayuda bastante a la hora de crear servicios de subida de imágenes donde el cliente no tenga que preocuparse más que de subir el archivo.
Código PHP:
if($_FILES['*NOMBRE DE VARIABLE DEL POST*']['name'])
{
$tmpname=$_FILES['logo']['tmp_name'];
$datos = getimagesize($tmpname);
//LOS NOMBRES SON ESTANDAR SEGÚN FECHA, de modo tal no se repitan los nombres (Tambien pueden dejar los nombres originales)
if($datos[2]==1){$nombre="img-".date("Y-m-d-H-i-s")."1.gif";}
if($datos[2]==2){$nombre="img-".date("Y-m-d-H-i-s")."1.jpg";}
if($datos[2]==3){$nombre="img-".date("Y-m-d-H-i-s")."1.png";}
//AHORA LLAMO LA FUNCIÓN
$datos2=crearimagen($tmpname,*TAMAÑO FIJO X,TAMAÑO FIJO Y,"../imagenes",$nombre);
$evento="./imagenes/".$datos2;
//acá ya puedo subir a una base de datos el nombre de la imagen
}
// ESTA ES LA FUNCIÓN
function crearimagen($imagen,$anchura,$altura,$directorio,$nombre)
{
$datos = getimagesize($imagen);
if($datos[2]==1){$img = @imagecreatefromgif($imagen);}
if($datos[2]==2){$img = @imagecreatefromjpeg($imagen);}
if($datos[2]==3){$img = @imagecreatefrompng($imagen);}
$thumb = imagecreatetruecolor($anchura,$altura);
if($datos[2]==3)
{
imagealphablending($thumb, false);
imagesavealpha($thumb, true);
}
$colorTransparancia=imagecolortransparent($img);
if($colorTransparancia!=-1)
{
$colorTransparente = imagecolorsforindex($img, $colorTransparancia);
$idColorTransparente = imagecolorallocatealpha($thumb, $colorTransparente['red'], $colorTransparente['green'], $colorTransparente['blue'], $colorTransparente['alpha']);
imagefill($thumb, 0, 0, $idColorTransparente);
imagecolortransparent($thumb, $idColorTransparente);
}
imagecopyresized($thumb, $img, 0, 0, 0, 0, $anchura, $altura, $datos[0], $datos[1]);
if($datos[2]==1){imagegif($thumb, "./".$directorio."/".$nombre);}
if($datos[2]==2){imagejpeg($thumb, "./".$directorio."/".$nombre, 75);}
if($datos[2]==3){imagepng($thumb, "./".$directorio."/".$nombre); }
unlink($imagen);
return($nombre);
}