A ver, hice una pregunta acerca de subir una imagen que mide un tamaño y de forma automática la convierta a otro y la guarde en otra carpeta, bueno lo he conseguido pero......
el script es este
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
$nombre_archivo2 = $_FILES['userfile2']['name'];
$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>Se permiten archivos .gif o .jpg<br><li>se permiten archivos de 100 Kb máximo.</td></tr></table>";
}else{
if (move_uploaded_file($HTTP_POST_FILES['userfile']['tmp_name'],"temporal/".$nombre_archivo))
if (move_uploaded_file($HTTP_POST_FILES['userfile']['tmp_name'],"temporal/".$nombre_archivo2)){
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);
thumbjpeg($nombre_archivo2, 125);
?>
Me sube una imagen a una carpeta llamada temporal con su tamaño original y automáticamente crea un thumbnail que lo guarda en otra carpeta llamada thumbs que está a su vez dentro de temporal, bien hasta ahí no hay ningún problema, el problema lo tengo a la hora de conectar con la bd y decirle que guarde el path del thumbnail es decir de la imagen que se ha creado después de subir la original, tengo este otro script para conectar con la base de datos pero al meterlo en el anterior me dá error porque no sé muy bien como meterlo
Código PHP:
$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,comentario) VALUES ('',temporal/thumbs/$thumb','".$_POST['comentario']."')";
echo $consulta_insertar;
mysql_query($consulta_insertar,$conexion) or die("No se pudo insertar los datos en la base de datos.");
header("location: index.php?s=1"); // si ha ido todo bien
exit;
}
else{
echo "Ocurrió algún error al subir el fichero. No pudo guardarse.";
}
Siendo la base de datos mon y la tabla pisos y el campo de la foto imagen como le digo que me meta los datos anteriores en la misma,
Otra historia que tengo es que esto lo necesito hacer a la vez con cuatro fotos y no sé muy bien, pero vamos a ir por partes, gracias de antemano