Código:
Las imágenes las subo con un formulario normal vía POST y las proceso de la siguiente forma:php_value upload_max_filesize 67107840 php_value post_max_size 67107840
Código PHP:
//subimos la imagen_quienes
if ($_POST["nofoto_imagen_quienes"]=="si"){
echo "<center>Sin imagen para página presentación.</center><br>";
}else{
if (is_uploaded_file($_FILES['imagen_quienes']['tmp_name'])) {
//revisamos que sea jpg
if ($_FILES['imagen_quienes']['type'] == "image/gif"||$_FILES['imagen_quienes']['type'] == "image/pjpeg"||$_FILES['imagen_quienes']['type'] == "image/jpeg"){
//nuevo nombre para la imagen
if ($_FILES['imagen_quienes']['type'] == "image/gif"){
$nuevoNombre_quienes = $_POST['foto_cambio_imagen_quienes'].".gif";
}
if ($_FILES['imagen_quienes']['type'] == "image/pjpeg"||$_FILES['imagen_quienes']['type'] == "image/jpeg"){
$nuevoNombre_quienes = $_POST['foto_cambio_imagen_quienes'].".jpg";
}
//movemos la imagen
move_uploaded_file($_FILES['imagen_quienes']['tmp_name'], "../../../espacioweb/web".$_POST['maqueta']."/Img/$nuevoNombre_quienes");
chmod( "../../../espacioweb/web".$_POST['maqueta']."/Img/$nuevoNombre_quienes", 0777 ); // octal; valor correcto de mode
//obtenemos la inforamción
$data = GetImageSize("../../../espacioweb/web".$_POST['maqueta']."/Img/$nuevoNombre_quienes");
//mensaje de éxito
echo "<center>Imagen para página presentación subida con éxito.</center><br>";
if ($_FILES['imagen_quienes']['type'] == "image/pjpeg"||$_FILES['imagen_quienes']['type'] == "image/jpeg"){
include ("../../../includes/redimensionar_imagen_quienes.php");
}
if ($_FILES['imagen_quienes']['type'] == "image/gif"){
include ("../../../includes/redimensionar_imagen_quienes_gif.php");
}
}else{
echo "<center>Formato no válido para fichero de imagen para página presentación.</center><br>";
}
//borrar fotos cambiadas
if ($_POST['actual_imagen_quienes']!="" && $_POST['actual_imagen_quienes']!="fotografia_vacia.jpg"){
unlink("../../../espacioweb/web".$_POST['maqueta']."/Img/".$_POST['actual_imagen_quienes']."");
}
}else {
echo "<center>No insertada imagen para página presentación.</center><br>";
}
}
Código PHP:
<?
//imagen original que subo al seridor y nombre de la imagen tras ser redimensionada.
$imagen_original = "1148408196-Q.jpg";
$imagen_nueva = "1148408196-Q-R.jpg";
//tamaño al que voy a redimensionarla
$imagen_nuevaWidth = 280;
$imagen_nuevaHeight = 300;
$imagetype = array (1 => 'GIF', 2 => 'JPG', 3 => 'PNG');
$imginfo = getimagesize($imagen_original);
if ($imginfo == null) {
$error = "ERROR: La imagen original no se encontro!";
return false;
}
$imginfo[2] = $imagetype[$imginfo[2]];
// ancho/alto de la imagen original
$srcWidth = $imginfo[0];
$srcHeight = $imginfo[1];
// Verifica que existan las funciones GD2
if (!function_exists('imagecreatefromjpeg')) {
$error = "la libreria de GD2 de imagenes no esta instalada!";
return false;
}
if (!function_exists('imagecreatetruecolor')) {
$error = "No existe la funcion imagecreatetruecolor de la libreria GD2 de imagenes!";
return false;
}
if ($imginfo[2] == 'JPG')
$src_img = imagecreatefromjpeg($imagen_original);
else
$src_img = imagecreatefrompng($imagen_original);
if (!$src_img) {
$error = "imagen no válida!";
return false;
}
//Mantengo las proporciones para que la imagen no se deforme
// determina el tamaño de la imagen
$imx = @ImageSX($src_img);
$imy = @ImageSY($src_img);
//determina proporcion en unidades
$x = $imx/$imagen_nuevaWidth;
$y = $imy/$imagen_nuevaHeight;
// calcula la escala
if($x>$y) $scale = $imagen_nuevaWidth/$imx;
if($x<$y) $scale = $imagen_nuevaHeight/$imy;
if($x==$y) $scale = $imagen_nuevaHeight/$imy;
//Escala la imagen
$x = intval($imx*$scale);
$y = intval($imy*$scale);
$dst_img = imagecreatetruecolor($x, $y);
imagecopyresampled($dst_img, $src_img, 0, 0, 0, 0, $x, $y, $imx, $imy);
imagejpeg($dst_img, $imagen_nueva, "90");//Ojo: el 80 es la calidad de la imagen
imageimagen_nuevaroy($src_img);
imageimagen_nuevaroy($dst_img);
// Se cambian los permisos del archivo
chmod($imagen_nueva, octdec('777'));
// Se verifica que la imagen es valida
$imginfo = getimagesize($imagen_nueva);
if ($imginfo == null) {
return false;
} else {
return true;
}
unlink($imagen_original);
?>