Foros del Web » Programando para Internet » PHP »

Problema con codigo

Estas en el tema de Problema con codigo en el foro de PHP en Foros del Web. Hola estoy probandolo en localhost, la imagen la sube bien a la carpeta fotos, guarda los datos en la base, pero no me crea el ...
  #1 (permalink)  
Antiguo 08/01/2006, 05:55
 
Fecha de Ingreso: septiembre-2004
Mensajes: 60
Antigüedad: 20 años, 2 meses
Puntos: 0
Problema con codigo

Hola estoy probandolo en localhost, la imagen la sube bien a la carpeta fotos, guarda los datos en la base, pero no me crea el thumbnailer en la carpeta "thumbs", os dejo aqui el codigo:

Código:
? 
//Conexion con la base 
mysql_connect("localhost","root",""); 

header ('location: anadir.php');

// Foto1
$foto1 = $_FILES['foto1']['name'];
if (is_uploaded_file($_FILES['foto1']['tmp_name'])) {
copy($_FILES['foto1']['tmp_name'], "c://appserv/www/reinaisabel/fotos/".$_FILES['foto1']['name'].""); 

} 
move_uploaded_file($_FILES['foto1']['tmp_name'], $foto.$_FILES['foto1']['name']."");
$imagen=$_FILES['foto1']['name'];
//Para crear el THUMB, esto es lo que no funciona./////////////////////
  

    // Tamaño del Thumbanil (de la imagen a generar ..)
    $picsize = 123;
    
    // Se obtienen los datos del ancho y alto de la imagen.
    $new_w = imagesx($imagen);
    $new_h = imagesy($imagen);

    // Se calcula la relación alto/ancho
    $aspect_ratio = $new_h / $new_w;
    
    // Se ajusta al nuevo tamaño
    $new_w = $picsize;
    $new_h = abs($new_w * $aspect_ratio);

   // Se crea la mascara de la imagen nueva
    $dst_img = ImageCreateTrueColor($new_w,$new_h);

// Se copia y reajusta el nuevo tamaño en la nueva imagen.
     imagecopyresampled($dst_img,$imagen,0,0,0,0,$new_w,$new_h,imagesx($imagen),imagesy($imagen));

    // Se entrega al buffer de salida (navegador en este caso) la imagen en formato JPEG
    // El tercer parámetro (100) indica la calidad de la imagen: en porcentaje relación calidad/peso imagen.
 /// CREO QUE ESA PARTE DA EL ERROR AL DARLE LA RUTA???   imagejpeg($dst_img,"c://appserv/www/reinaisabel/fotos/t_1".$_FILES[$imagen]['name'],100);
	ImageDestroy($src_img);
	 Imagedestroy($imagen);
	 


//Ejecucion de la sentencia SQL 
mysql_db_query("base_datos","insert into tabala_base (foto1) values ('$foto1')")or die(mysql_error());  

mysql_close($con);
?>
Creo que el problema debe de ser la ruta donde se va a guardar el Thumb.

Bueno gracias
  #2 (permalink)  
Antiguo 08/01/2006, 06:20
 
Fecha de Ingreso: diciembre-2005
Ubicación: Madrid, España
Mensajes: 154
Antigüedad: 18 años, 11 meses
Puntos: 2
Esto funciona y realiza la misma función que buscas:

Código PHP:
// Configura esto a tu medida
$path "definicion-path";
$fichero $path "nombre_imagen.jpg";
$thumb $path "nombre_thumb.jpg";

unlink($fichero);// or die("No se ha podido borrar la imagen!");
$img imagecreatefromjpeg($_FILES['imagen']['tmp_name']) or die("No se encuentra la imagen");
imagejpeg($img,$fichero);
        
// Creamos el thumb        
$img imagecreatefromjpeg($fichero) or die("No se encuentra la imagen $fichero");
list(
$ancho_orig$alto_orig$tipo$atr) = getimagesize($fichero) or die("Problemas con $fichero<br>n");

thumbjpeg($fichero,40,40,$thumb); // (40,40) modifícalo por el tamaño de thumb que desees 
Código PHP:
function thumbjpeg($imagen,$altura,$anchura,$path) {

     
$img imagecreatefromjpeg($imagen);

     
// miramos el tamaño de la imagen original...
     
list($ancho_orig$alto_orig$tipo$atr) = getimagesize($imagen);

     
// intentamos escalar la imagen original a la medida que nos interesa
     
if ($ancho_orig $alto_orig) {
         
$ratio = ($alto_orig $altura);
         
$anchura round($ancho_orig $ratio);
     }
     else {
        
$ratio = ($ancho_orig $anchura);
         
$altura round($alto_orig $ratio);
     }
     
     
// esta será la nueva imagen reescalada
     
$thumb imagecreatetruecolor($anchura,$altura);
     
     
// con esta función la reescalamos
     
imagecopyresampled($thumb$img0000$anchura$altura$ancho_orig$alto_orig);

     
// voilà la salvamos con el nombre y en el lugar que nos interesa.
     
imagejpeg($thumb,$path);

  #3 (permalink)  
Antiguo 08/01/2006, 06:29
 
Fecha de Ingreso: septiembre-2004
Mensajes: 60
Antigüedad: 20 años, 2 meses
Puntos: 0
Pues Gracias

Bueno pues gracias, le hechare un vistazo a ver que tal, el unico problema es que soy un poquito inexperto, vamos que se lo basico,jajaja.

Pues a probarla, Gracias
  #4 (permalink)  
Antiguo 09/01/2006, 09:49
 
Fecha de Ingreso: septiembre-2004
Mensajes: 60
Antigüedad: 20 años, 2 meses
Puntos: 0
Pues nada

Pues nada sigo probando pero no, dejo el ultimo fracmento haber si alguienme pude ayudar:
Código:
/ Foto1
$foto1 = $_FILES['foto1']['name'];
if (is_uploaded_file($_FILES['foto1']['tmp_name'])) {
copy($_FILES['foto1']['tmp_name'], "c://appserv/www/reinaisabel/fotos/".$_FILES['foto1']['name']."");
# Primero tienes que crear el directorio donde estaran las fotos de los usuarios y luego CHMOD 777
# de otra forma no te funcionara.

//EMPEZAMOS CON THUMBNAIL


$directorio="c://appserv/www/reinaisabel/fotos/miniatura/";

$img = ImageCreateFromJPEG($imagen);

// Tamaño del Thumbanil (de la imagen a generar ..)
$picsize = 123;

// Se obtienen los datos del ancho y alto de la imagen.
$new_w = imagesx($img);
$new_h = imagesy($img);

// Se calcula la relación alto/ancho
$aspect_ratio = $new_h / $new_w;

// Se ajusta al nuevo tamaño
$new_w = $picsize;
$new_h = abs($new_w * $aspect_ratio);

// Se crea la mascara de la i/magen nueva
$dst_img = ImageCreateTrueColor($new_w,$new_h);

// Se copia y reajusta el nuevo tamaño en la nueva imagen.
imagecopyresampled($dst_img,$img,0,0,0,0,$new_w,$new_h,imagesx($img),imagesy($img));

// Se entrega al buffer de salida (navegador en este caso) la imagen en formato JPEG
// El tercer parámetro (100) indica la calidad de la imagen: en porcentaje relación calidad/peso imagen.
imagejpeg($dst_img,$directorio.$foto1,100);
//ImageDestroy($src_img);
Imagedestroy($img);


// FIN
Bueno pues gracias
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 14:09.