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.