Primero digo que la imgen que el cliente seleccione del pc la suba a la carpeta temporal y luego digo que una función de thumbnail me lo haga buscando la imgen en esa carpeta temporal y me cree dentro otra llamda thumbnail donde me guardará la miniatura, este es el código
Código PHP:
//una vez recogidas todas las variables
//si no se sube ninguna foto le digo que ponga esta por defecto
$def="/fotodefecto.jpg";
//echo "<br>referencia: $nombre, tipo: $tpiso ";
//echo "<br> descripcion: $descripcion";
//echo "<br> fecha:$fecha <br>";
if ($nombre_archivo=="")
$foto=$def;
else
$foto='temporal/thumbs/'.'tn_'.$nombre_archivo;
if ($nombre_archivo2=="")
$foto2=$def;
else
$foto2='temporal/thumbs/'.'tn_'.$nombre_archivo2;
if ($nombre_archivo3=="")
$foto3=$def;
else
$foto3='temporal/thumbs/'.'tn_'.$nombre_archivo3;
if ($nombre_archivo4=="")
$foto4=$def;
else
$foto4='temporal/thumbs/'.'tn_'.$nombre_archivo4;
//echo"<br> foto:$foto,$foto2,$foto3,$foto4 <br>";
include("conectobd.php");
$venta='0';
$alquiler='0';
$traspaso='0';
if ($tpiso!='blanco'){
$valores=$_POST["operacion"]; $b=0;
foreach ($valores as $value)
{
if($value=='blanco')
$b=1;
if ($value=='1')
$venta='1';
if ($value=='2')
$alquiler='1';
if ($value=='3')
$traspaso='1';
}
if($b==0){
if($nombre != "")
{
$sql = "SELECT id FROM 11 WHERE referencia='$nombre' AND alquiler='$alquiler' AND venta='$venta' AND traspaso='$traspaso'";
$result = mysql_query($sql);
if($row = mysql_fetch_array($result))
{
?>
<strong><font size="5">
<script language="javascript">
alert("Inmueble ya registrado");
location.href="javascript:window.history.back()";
</script>
<?
}
else{
// puede que tenga distinta referencia pero que sea un inmueble ya registrado como por ejemplo alquiler
// y ahora lo pone en venta entonces salvo la referencia y los campos de estado del inmueble el resto
// son iguales
// si no queremos crear otro registro
$sql = "SELECT id FROM 11WHERE descripcion='$descripcion' AND id_tipo_inmueble='$tpiso' ";
$result = mysql_query($sql);
if($row = mysql_fetch_array($result))
{
?>
<strong><font size="5">
<script language="javascript">
alert("Inmueble ya insertado puede modificar algún valor si lo desea");
location.href="tablainmueble.php?iden=<? echo $row['id']; ?>";
</script>
<?
}
else{
$insertar="INSERT INTO 11(referencia,id_tipo_inmueble,fecha,imagen1,imagen2,imagen3,imagen4,descripcion,venta,alquiler,traspaso) VALUES ('$nombre','$tpiso','$fecha','$foto','$foto2','$foto3','$foto4','$descripcion','$venta','$alquiler','$traspaso')";
echo mysql_error();
if (!mysql_query($insertar)){
echo "Error al registrar los datos <br>";
}
else{
?>
<script language="javascript">
alert("SUS DATOS HAN SIDO ACTUALIZADOS CORRECTAMENTE");
location.href="javascript:window.history.back()";
</script>
<?
$sql="SELECT * FROM 11 WHERE referencia='$nombre'";
$result=mysql_query($sql);
$f=mysql_fetch_object($result);
$i=$f->id;
//echo "id piso= $i <br>";
$valores=$_POST["operacion"];
//$co=count($valores); cuenta elemntos del array
//echo "long= $co<br>" ;
foreach ($valores as $value){
$insertar="INSERT INTO ptoperacion(Id_piso,Id_tipoperacion) VALUES ('$i','$value')";
if (!mysql_query($insertar)){
echo "Error al registrar el tipo de operación <br>";
}
//else echo " <br>valor: $value"; si quiero mostrar elemento del array
}
}
}//fin else antes del insert
}
}//fin else de no duplicarse referencia
}// fin del si hay referencia
if($nombre == "")
{ //no se introdujo referencia
?>
<script language="javascript">
alert("NO SE INTRODUJO LA REFERENCIA, INTÉNTELO DE NUEVO");
location.href="javascript:window.history.back()";
</script>
<?
}
}
else {
?>
<script language="javascript">
alert("Campos vacíos, INTÉNTELO DE NUEVO");
location.href="javascript:window.history.back()";
</script>
<?
}
if($b==1){
?>
<script language="javascript">
alert("Campos vacíos, INTÉNTELO DE NUEVO");
location.href="javascript:window.history.back()";
</script>
<?
}
//vbles booleanas para comprobar si hay foto correcta, en este caso se le aplica más abajo la función thumbail
$carga1=$carga2=$carga3=$carga4=0;
echo "carga$carga1 $carga2 $carga3 $carga4 <br>";
if (!((strpos($tipo_archivo, "gif") || strpos($tipo_archivo, "jpeg")) && ($tamano_archivo < 1000000)))
echo "La extensión o el tamaño del archivo con foto1 no es correcta. <br><br><table><tr><td><li></td></tr></table>";
else{
if (move_uploaded_file($_FILES['userfile']['tmp_name'], "temporal/".$nombre_archivo)){
echo "<br>El archivo CON LA FOTO1 ha sido cargado correctamente en "."temporal/".$nombre_archivo;
$carga1=1;}
echo "<br>";
}
if (!((strpos($tipo_archivo2, "gif") || strpos($tipo_archivo2, "jpeg")) && ($tamano_archivo2 < 1000000)))
echo "La extensión o el tamaño del archivo con foto2 no es correcta. <br><br><table><tr><td><li></td></tr></table>";
else{
if (move_uploaded_file($_FILES['userfile2']['tmp_name'], "temporal/".$nombre_archivo2)){
echo "El archivo CON LA FOTO2 ha sido cargado correctamente en "."temporal/".$nombre_archivo2;
$carga2=1;}
echo "<br>";
}
if (!((strpos($tipo_archivo3, "gif") || strpos($tipo_archivo3, "jpeg")) && ($tamano_archivo3 < 1000000)))
echo "La extensión o el tamaño del archivo con foto3 no es correcta. <br><br><table><tr><td><li></td></tr></table>";
else{
if (move_uploaded_file($_FILES['userfile3']['tmp_name'], "temporal/".$nombre_archivo3)){
echo "El archivo CON LA FOTO3 ha sido cargado correctamente en "."temporal/".$nombre_archivo3;
$carga3=1;}
echo "<br>";
}
if (!((strpos($tipo_archivo4, "gif") || strpos($tipo_archivo4, "jpeg")) && ($tamano_archivo4< 1000000)))
echo "La extensión o el tamaño del archivo con foto4 no es correcta. <br><br><table><tr><td><li></td></tr></table>";
else{
if (move_uploaded_file($_FILES['userfile4']['tmp_name'], "temporal/".$nombre_archivo4)) {
echo "El archivo CON LA FOTO4 ha sido cargado correctamente en "."temporal/".$nombre_archivo4;
$carga4=1;}
echo "<br>";
}
//ahora hago el thumbnail, este código es el que está en las faqs de aquí
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. y esta es mi duda, //como está o es /temporal o puede ser public_html/temporal
$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);
}
}
if ($carga1==1)
thumbjpeg($nombre_archivo, 300);
if ($carga2==1)
thumbjpeg($nombre_archivo2, 300);
if ($carga3==1)
thumbjpeg($nombre_archivo3, 300);
if ($carga4==1)
thumbjpeg($nombre_archivo4, 300);
// una vez creados los thumbnails
mysql_close($link);
?>