Hola:
Tengo un código que te puede servir:
Código PHP:
<?php
$archivo = getimagesize($_FILES['foto']['tmp_name']);
switch ($archivo[2]) {
case 1:
$imagen = imagecreatefromgif($_FILES['foto']['tmp_name']); break;
case 2:
$imagen = imagecreatefromjpeg($_FILES['foto']['tmp_name']); break;
case 3:
$imagen = imagecreatefrompng($_FILES['foto']['tmp_name']); break;
// etcétera //
}
if(!$imagen)
die('No se pudo crear la imagen.');
$original = $imagen;
$original_w = imagesx($original);
$original_h = imagesy($original);
$max = 125; //AQUI PONES EL TAMAÑO DE LA IMAGEN A LO QUE QUIERAS
if($original_w>$original_h) {
$muestra_w = $max;
$muestra_h = intval(($original_h/$original_w)*$max);
} else {
$muestra_w = intval(($original_w/$original_h)*$max);
$muestra_h = $max;
}
$muestra = imagecreatetruecolor($muestra_w,$muestra_h);
$muestra = imagecreatetruecolor($muestra_w,$muestra_h);
imagecopyresampled($muestra,$original,0,0,0,0, $muestra_w,$muestra_h,$original_w,$original_h);
imagedestroy($original); // aqui destruyo el original, pues no hace falta ya
// me verifica haya sido cargado el archivo
$ruta_destino = "/fotos/";
$namefinal = strtolower(str_replace(' ', '-', $_FILES['foto']['name']));
// Quitamos la extension
list($namefinal, $extension) = explode('.', $namefinal);
// Agregamos la extension .jpg
$namefinal = mysql_insert_id();
// Guardas el archivo:
$uploadfile= $ruta_destino . $namefinal . '.jpg';
//quito los espacios entre las palabtas del nombre si los hay
if(imagejpeg($muestra,$uploadfile,'100'))
{
// se coloca en su lugar final
// Se guardo correctamente
// Si aun crees necesario guardar el nombre con ruta en la base de datos:
$query = "UPDATE fotos SET id_foto = '$namefinal' WHERE id_producto = '$namefinal'";
mysql_query($query) or die(mysql_error());
}
?>
Espero que te sirva.