(Gracias Edwwinpaz, epro el server no usa PHP 5 sino 4.4, asi que no me servirá.)
Jcarrascal: algo no funciona porque no renombra el archivo creado. Por si el error estuviera fuera de la funcion, coloco lo que está en el script general y la funcion. Devuelve en pantalla que la imagen se creo con el nuevo nombre, pero la guarda con el nombre de origen, no con el de $nombre generado:
Código PHP:
$nombre=rand(1000000,9999999); //nombre al azar para renombrar la imagen.
$ruta = "../fotos_gr/".$_FILES['imagen']['name'];// ruta para subir la foto cruda
copy ($_FILES['imagen']['tmp_name'],$ruta);
/****************************************
funcion resize
/****************************************/
function thumbjpeg($imagen,$altura,$nombre) {
global $nombre;
// Lugar donde se guardarán los thumbnails respecto a la carpeta donde está la imagen "grande".
$dir_thumb = "";
// Prefijo que se añadirá al nombre del thumbnail. Ejemplo: si la imagen grande fuera "imagen1.jpg",
// el thumbnail se llamaría "tn_imagen1.jpg"
$prefijo_thumb = "tn_";
// Aquí tendremos el nombre de la imagen.
//$nombre=basename($imagen);
// Aquí la ruta especificada para buscar la imagen.
$camino=dirname($imagen)."/";
// Intentamos crear el directorio de thumbnails, si no existiera previamente.
if (!file_exists($camino.$dir_thumb))
@mkdir ($camino.$dir_thumb, 0777) or die("No se ha podido crear el directorio ".$camino.$dir_thumb);
// Aquí comprovamos que la imagen que queremos crear no exista previamente
if (!file_exists($camino.$dir_thumb.$prefijo_thumb.$nombre)) {
echo $camino.$dir_thumb.$prefijo_thumb.$nombre." NO existia<br>\n";
$img = @imagecreatefromjpeg($camino.$nombre) or die("No se encuentra la imagen $camino$nombre<br>\n");
// miramos el tamaño de la imagen original...
$datos = getimagesize($camino.$nombre) or die("Problemas con $camino$nombre<br>\n");
// intentamos escalar la imagen original a la medida que nos interesa
$ratio = ($datos[1] / $altura);
$anchura = round($datos[0] / $ratio);
// esta será la nueva imagen reescalada
$thumb = imagecreatetruecolor($anchura,$altura);
// con esta función la reescalamos
imagecopyresampled ($thumb, $img, 0, 0, 0, 0, $anchura, $altura, $datos[0], $datos[1]);
// voilà la salvamos con el nombre y en el lugar que nos interesa.
imagejpeg($thumb,$camino.$dir_thumb.$prefijo_thumb.$nombre);
}
}
/****************************************
FIN funcion
/****************************************/
thumbjpeg($ruta, 200, $nombre);