Gracias por tu ayuda Cluster, mira he estado trasteando con los códigos que encuentro por aquí y he conseguido hacer esto, te recuerdo que soy novato en esto del php así que disculpame si ves alguna metedura de pata muy grande, bueno te explico, ya tengo el formulario típico que se suele usar para este fín, mando los datos al archivo subearchivo.php, subo la imagen a una carpeta llamada temporal y hago directamente un thumbnail que me lo guarda en otra carpeta llamada thumbs que esta dentro de temporal, hasta ahí todo perfecto, ahora el problemilla que tengo, bueno decirte que todo esto lo estoy haciendo con una sola imagen para poder coger el concepto y entender como funciona esto despues tengo que hacerlo para cuatro imagenes a la vez, te decía, que el problemilla que tengo ahora es como decirle que me meta en la base de datos esa imagen que acabo de reducir y que está en la carpeta temporal/thumbs/imagenreducida, he usado el código que antes usaba para con la imagen en tamaño normal sin reducir y que me funcionaba pero debo estar poniendo mal el nombre o algo porque el error que me dá es:
Parse error: parse error, unexpected T_ELSE
Mira te pongo el código que uso y te marco cual es la línea en el para que veas como lo estoy haciendo. Está abajo del todo
el nombre de la base de datos es mon y la tabla pisos.
subearchivo.php
Código PHP:
<?
//tomo el valor de un elemento de tipo texto del formulario
$cadenatexto = $_POST["cadenatexto"];
echo "Escribió en el campo de texto: " . $cadenatexto . "<br><br>";
//datos del arhivo
$nombre_archivo = $_FILES['userfile']['name']; //nombre original del archivo
$tipo_archivo = $_FILES['userfile']['type'];
$tamano_archivo = $_FILES['userfile']['size'];
//compruebo si las características del archivo son las que deseo
if (!((strpos($tipo_archivo, "gif") || strpos($tipo_archivo, "jpeg") || strpos($tipo_archivo, "JPEG") ) && ($tamano_archivo < 1000000000))) {
echo "La extensión o el tamaño de los archivos no es correcta. <br><br><table><tr><td><li><br><li></td></tr></table>";
}else{
if (move_uploaded_file($HTTP_POST_FILES['userfile']['tmp_name'],"temporal/".$nombre_archivo)){
echo "El archivo ha sido cargado correctamente.";
}else{
echo "Ocurrió algún error al subir el fichero. No pudo guardarse.";
}
}
// hago la priemera reducción de tamaño
function thumbjpeg($imagen,$altura) {
// Lugar donde se guardarán los thumbnails respecto a la carpeta donde está la imagen "grande".
$dir_thumb = "thumbs/";
// 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)."/temporal/";
// 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 existía<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);
}
}
//ejecuto la acción
thumbjpeg($nombre_archivo, 125);
// hasta aquí consigo que todo funcione bien, me sube la primera imagen a la carpeta temporal y luego me la reduce y la guarda en la carpete thumbs dentro de temporal
//ahora conecto con la bd y al añadir esto es cuando me sale el error
$conexion = mysql_connect("localhost","root","") or die("No se pudo realizar la conexion con el servidor.");
mysql_select_db("mon",$conexion) or die("No se puede seleccionar BD");
//insertamos los datos en la BD.
$consulta_insertar = "INSERT INTO pisos (id,imagen) VALUES ('','temporal/thumbs/$thumb')"; //aquí tengo que poner que guarde la imagen reducida no sé si está bien el nombre y la dirección $thumb
echo $consulta_insertar;
mysql_query($consulta_insertar,$conexion) or die("No se pudo insertar los datos en la base de datos.");
header("location: imagenes.php?s=1"); // si ha ido todo bien
exit;
else{ //AQUÍ DA EL ERROR AHORA
echo "Ocurrió algún error al subir el fichero. No pudo guardarse."; }
?>
Con esto lo que pretendo es que la imagen que el cliente suba ya esté a un tamaño más normal para trabajar en la web y después sí tengo que hacer a la hora de mostrar un pequeño comentario acerca de un inmueble un thumbnail otra vez para mostrar una miniatura de la casa o piso o lo que sea para despues al pinchar en un "leer más" entrar a una ventana con el tamaño real, espero haberte dado más datos para que me entiendas, muchísimas gracias