Ver Mensaje Individual
  #1 (permalink)  
Antiguo 31/01/2005, 08:54
mon
 
Fecha de Ingreso: febrero-2003
Mensajes: 506
Antigüedad: 21 años, 2 meses
Puntos: 0
Duda al escribir los paths

A ver si me podeis hechar una mano
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_archivo41000000))) 
 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_thumb0777) 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$img0000$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_archivo300);
  if (
$carga2==1)
   
thumbjpeg($nombre_archivo2300);
  if (
$carga3==1)
   
thumbjpeg($nombre_archivo3300);
  if (
$carga4==1)
   
thumbjpeg($nombre_archivo4300); 
// una vez creados los thumbnails   


mysql_close($link);

?>
Teniendo en cuenta que este código está en una carpeta llamada loquesea en la carpeta raíz, estarían bien puestos los paths de las carpetas si temporal también está en la carpeta raíz. la carpeta raíz se llama public_html, venga muchas gracias

Última edición por mon; 14/02/2005 a las 05:49