Foros del Web » Programando para Internet » PHP »

thumbjpeg

Estas en el tema de thumbjpeg en el foro de PHP en Foros del Web. Hola estoy usando la función q hay en las faqs para crear thumbnails y la e modificado un poco para adaptarla a mis necesidades, a ...
  #1 (permalink)  
Antiguo 01/03/2005, 17:30
Avatar de bichomen  
Fecha de Ingreso: junio-2003
Ubicación: Barcelona y alrededores, España
Mensajes: 874
Antigüedad: 14 años, 6 meses
Puntos: 2
thumbjpeg

Hola estoy usando la función q hay en las faqs para crear thumbnails y la e modificado un poco para adaptarla a mis necesidades, a la hora de pasarle los datos, el codigo original era este:

thumbjpeg($imagen, $altura);

yo le e añadido dos variables:

$ruta ---> ruta donde quiero que se guarde la foto original

$rutap ---> ruta donde queiero que se guarden los thumbnails

thumbjpeg($imagen, $altura, $ruta, $rutap);


pero el codigo no funciona, cuando le paso a la variable $camino
la variable $ruta

$camino = $ruta;

y

$dir_thumb = $rutap;

la segunda (entre "") funciona, pero la primera, me devuelve el valor de $imagen, en vez el valor de $ruta

No lo entiendo, por que pasa esto, agraderia cualquier ayuda, gracias

bichomen
__________________
"Se sabe con exactitud, con cuanta imprecisión, se sabe algo"
Linux Registered User #320332
  #2 (permalink)  
Antiguo 01/03/2005, 19:42
Avatar de lado2mx
Colaborador
 
Fecha de Ingreso: agosto-2001
Ubicación: Veracruz
Mensajes: 3.720
Antigüedad: 16 años, 4 meses
Puntos: 9
A ver, en primera no le entiendo, posiblemente te falta definir algún detalle en $ruta, poniendolo concatenado, si puedes, muestra el código de la función para crear el thumbjpeg().
  #3 (permalink)  
Antiguo 02/03/2005, 04:41
Avatar de bichomen  
Fecha de Ingreso: junio-2003
Ubicación: Barcelona y alrededores, España
Mensajes: 874
Antigüedad: 14 años, 6 meses
Puntos: 2
Código PHP:
function thumbjpeg($imagen$altura$ruta,  $rutap)
{
     
     
$prefijo_thumb "p_";
     
$nombre $imagen;
     
$camino $ruta;
     
$dir_thumb $rutap;

     if (!
file_exists($dir_thumb.$prefijo_thumb.$nombre))
     {
          echo 
$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");

                   
$datos getimagesize($camino.$nombre) or die("Problemas con $camino"."$nombre<br>\n");

          
$ratio = ($datos[1] / $altura);
          
$anchura round($datos[0] / $ratio);

         
          
$thumb imagecreatetruecolor($anchura,$altura);

          
imagecopyresampled ($thumb$img0000$anchura$altura$datos[0], $datos[1]);

         
imagejpeg($thumb$dir_thumb.$prefijo_thumb.$nombre);
     }

esta es la función, la tengo en un archivo a parte y la paso como un include

bichomen
__________________
"Se sabe con exactitud, con cuanta imprecisión, se sabe algo"
Linux Registered User #320332
  #4 (permalink)  
Antiguo 02/03/2005, 09:44
Avatar de bichomen  
Fecha de Ingreso: junio-2003
Ubicación: Barcelona y alrededores, España
Mensajes: 874
Antigüedad: 14 años, 6 meses
Puntos: 2
nadie puede echarme una mano?

bichomen
__________________
"Se sabe con exactitud, con cuanta imprecisión, se sabe algo"
Linux Registered User #320332
  #5 (permalink)  
Antiguo 02/03/2005, 09:53
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 15 años, 11 meses
Puntos: 126
Será mejor que -ademas- de poner el código de tu función (adaptada) muestres como la llamas y como la usas ..

Un saludo,
  #6 (permalink)  
Antiguo 02/03/2005, 10:07
Avatar de bichomen  
Fecha de Ingreso: junio-2003
Ubicación: Barcelona y alrededores, España
Mensajes: 874
Antigüedad: 14 años, 6 meses
Puntos: 2
Pues de esta manera, el include (imagen.php) es un script para subir la imagen al servidor, a traves de la variable $foto_name recogo el nombre de la imagen, cuando le paso $ruta a imagen.php no me la guarda donde le indico, lo mismo pasa con el script para crear los thumbnails, el script ya lo puse en el anterior mensaje

<?php

if (isset($submit)):


$imagen = $foto_name;

$altura = "125";

include ("funcion.php");

include("imagen.php");

thumbjpeg($imagen, $altura, $ruta, $rutap);

endif;

?>

<form action="crear.php" method="post" enctype="multipart/form-data">

Imagen grande:

<select name="ruta">

<option value="/ruta/primera/"class=" fontclaro1">ruta1</option>
<option value="ruta/segunda/"class=" fontclaro1">ruta2</option>
<option value="/ruta/tercera/"class=" fontclaro1">ruta3</option>
<option

</select></p>

Imagen pequeña:

<select name="rutap">

<option value="/rutap1/primera/" class="fontclaro1">rutap1</option>
<option value="/rutap2/segunda/" class="fontclaro1">rutap2</option>
<option value="/rutap3/pequenas/" class="fontclaro1">rutap3</option>

</select></p>


foto: <input type="file" name="foto">



<input type="submit" name="submit" value="Enviar" style="color: blue">
<input type="reset" name="reset" value="Cancelar" style="color: blue">

</form>


bichomen
__________________
"Se sabe con exactitud, con cuanta imprecisión, se sabe algo"
Linux Registered User #320332
  #7 (permalink)  
Antiguo 25/03/2005, 10:21
Avatar de bichomen  
Fecha de Ingreso: junio-2003
Ubicación: Barcelona y alrededores, España
Mensajes: 874
Antigüedad: 14 años, 6 meses
Puntos: 2
Aun necesito ayuda con este tema, alguien me puede ayudar?

bichomen
__________________
"Se sabe con exactitud, con cuanta imprecisión, se sabe algo"
Linux Registered User #320332
  #8 (permalink)  
Antiguo 25/03/2005, 10:57
Avatar de lado2mx
Colaborador
 
Fecha de Ingreso: agosto-2001
Ubicación: Veracruz
Mensajes: 3.720
Antigüedad: 16 años, 4 meses
Puntos: 9
Las rutas no las tienes que almacenar en las direcciones URL, sino en las direccíones de tu propio servidor.

checa con la función phpinfo(); cual es la dirección de tu carpeta raiz, y la copias y la pegas, y ya con eso.
  #9 (permalink)  
Antiguo 25/03/2005, 11:16
Avatar de bichomen  
Fecha de Ingreso: junio-2003
Ubicación: Barcelona y alrededores, España
Mensajes: 874
Antigüedad: 14 años, 6 meses
Puntos: 2
No entiendo esta respuesta q me has dado lado2nx, que yo sepa las guardo en carpeta raiz

bichomen
__________________
"Se sabe con exactitud, con cuanta imprecisión, se sabe algo"
Linux Registered User #320332
  #10 (permalink)  
Antiguo 25/03/2005, 11:18
Avatar de lado2mx
Colaborador
 
Fecha de Ingreso: agosto-2001
Ubicación: Veracruz
Mensajes: 3.720
Antigüedad: 16 años, 4 meses
Puntos: 9
pero sabes la dirección absoluta de tu servidor?, no me refiero al http

con esta función la puedes sabar muy bien
  #11 (permalink)  
Antiguo 25/03/2005, 11:29
Avatar de bichomen  
Fecha de Ingreso: junio-2003
Ubicación: Barcelona y alrededores, España
Mensajes: 874
Antigüedad: 14 años, 6 meses
Puntos: 2
La direcion absoluta es : /var/www/http/ de hay cuelga toda la web, yo la ruta ya la paso asi; /var/www/http/carpeta/subcarpeta/

bichomen
__________________
"Se sabe con exactitud, con cuanta imprecisión, se sabe algo"
Linux Registered User #320332
  #12 (permalink)  
Antiguo 26/03/2005, 00:13
Avatar de Stickmaster2004  
Fecha de Ingreso: septiembre-2004
Ubicación: Barranquilla
Mensajes: 567
Antigüedad: 13 años, 3 meses
Puntos: 0
lo que yo hago es que tomo la foto original desde cualquier parte de mi computador ya sea c: o d:\pollos\gallinas y las cargo con un input "file", luego en la otra pagina .php cargo la imagen hago un thumbnails y la convierto a un tamaño deseado por ejemplo de 50x50 y la introduzco en una carpeta que cree llamada imagenes que esta dentro de mi proyecto, una vez la imagen es insertada en la base de datos de mysql, ya no necesito que quede alojada alli seria algo redundante asi pues se llenaria el disco duro con muchas imagenes, pues para eso utilizo la funcion unlink para eliminar un archivo de un directorio en especifico en mi caso el directorio imagenes, una vez se sube el archivo a la base de datos inmediatamente lo elimino de dicha carpeta, en fin esa carpeta imagenes es como si fuera una carpeta temporal y siempre va a estar vacia pues siempre voy eliminado, te muestro el codigo a ver si te sirve:

<?php
if (empty($_FILES['foto']['name'])){
header("location: insertarpro.html?proceso=falta_indicar_fichero"); //o como se llame el formulario ..
exit;
}
?>


<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<title>Documento sin t&iacute;tulo</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<script language="JavaScript" type="text/JavaScript">
<!--
function MM_reloadPage(init) { //reloads the window if Nav4 resized
if (init==true) with (navigator) {if ((appName=="Netscape")&&(parseInt(appVersion)==4)) {
document.MM_pgW=innerWidth; document.MM_pgH=innerHeight; onresize=MM_reloadPage; }}
else if (innerWidth!=document.MM_pgW || innerHeight!=document.MM_pgH) location.reload();
}
MM_reloadPage(true);
//-->
</script>
</head>

<body>
<div id="Layer1" style="position:absolute; width:591px; height:804px; z-index:1; left: 0px; top: -4px;"><img src="barra.gif" width="623" height="800">
<div id="Layer2" style="position:absolute; width:620px; height:84px; z-index:1; left: 1px; top: -2px;">
<div id="Layer3" style="position:absolute; width:613px; height:115px; z-index:1; left: 5px; top: 113px;">
<div align="justify">




<?php


$nom=$_POST['nom'];
$pre=$_POST['pre'];
$des=$_POST['des'];



//establece una conexión con la base de datos.
$conexion = mysql_connect("localhost","","") or die("No se pudo realizar la conexion con el servidor.");
mysql_select_db("portafolio",$conexion) or die("No se puede seleccionar BD"); // tu_bd es el nombre de la Base de datos .. por siaca.

// archivo temporal (ruta y nombre).
$binario_nombre_temporal=$_FILES['foto']['tmp_name'] ;

// leer del archvio temporal .. el binario subido.
// "rb" para Windows .. Linux parece q con "r" sobra ...
$binario_contenido = addslashes(fread(fopen($binario_nombre_temporal, "rb"), filesize($binario_nombre_temporal)));

$binario_nombre=$_FILES['foto']['name'];
$archie='imagenes/'.$binario_nombre;


$original = imagecreatefromjpeg($binario_nombre_temporal);
$thumb = imagecreatetruecolor(50,50); // Lo haremos de un tamaño 50x50

$ancho = imagesx($original);
$alto = imagesy($original);

imagecopyresampled($thumb,$original,0,0,0,0,50,50, $ancho,$alto);


$d=imagejpeg($thumb,$archie,90); // 90 es la calidad de compresión



$binario_contenido1 =addslashes(fread(fopen($archie,"rb"), filesize($archie)));










//insertamos los datos en la BD.
$consulta_insertar = "INSERT INTO productos (codigo,nom_prod,precio,fotografia,descripcion) VALUES ('', '$nom', '$pre', '$binario_contenido1', '$des')";
mysql_query($consulta_insertar,$conexion) or die("No se pudo insertar los datos en la base de datos.");
?>
<center>
<b>
<?php
echo "El Producto ha sido Ingresado Satisfactoriamente";


$dirname="./".$archie;

function rmd($dirname)
{
// Sanity check
if (!file_exists($dirname)) {
return false;
}

// Simple delete for a file
if (is_file($dirname)) {
return unlink($dirname);
}



return rmdir($dirname);
}

$dirname ="./".$archie;
rmd($dirname);



?>
<br>
<br>
<center>
<b>Si desea Ingresar otro Producto haga click,&nbsp;<a href="insertarpro.html"><font color="blue">Aqui</font></b></a>
<div id="Layer4" style="position:absolute; width:375px; height:22px; z-index:2; left: -43px; top: -31px;"><a href="mantenimientotrampa.php"><font color="#0000CC">Volver al Menu Principal de Mantenimiento </font></a></div>
</div>
</div>
<img src="slice_05.jpg" width="619" height="79"></div>
</div>
</body>
</html>
__________________
Solo el que se basa en conocimiento basico y cultiva el aprendizaje obtendra sabiduria
  #13 (permalink)  
Antiguo 26/03/2005, 10:44
Avatar de bichomen  
Fecha de Ingreso: junio-2003
Ubicación: Barcelona y alrededores, España
Mensajes: 874
Antigüedad: 14 años, 6 meses
Puntos: 2
Al final, lo arregle, el problema estaba en el nombre de una de las carpetas, estaba mal puesto, pero aun asi me quedo con la idea del unlink, para borrar la imagen una vez subida, ya sea desde mi pc o desde otro sitio, gracias

bichomen
__________________
"Se sabe con exactitud, con cuanta imprecisión, se sabe algo"
Linux Registered User #320332
  #14 (permalink)  
Antiguo 28/03/2005, 08:56
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 15 años, 11 meses
Puntos: 126
PHP sube temporalmente los archivos vía HTTP hacia un directorio temporal que detemina la directiva: upload_tmp_dir .. dicho directorio está (normalmente y así debería ser) fuera del alcanze de un "unlink()" a nivel de permisos .. tan sólo del uso de "move_uploaded_file()" (para tomar el archivo y llevartelo a donde quieras).

Es tu servidor (el S.O.) el que debería ejecutar procesos para borrar ese directorio temporal a intervalos de tiempo. Considerando que PHP al abrir el archivo para moverlo no podrá accederlo esa rutina que borre esos archivos del directorio citado ... no tendrás problemas, pues el archivo al subirlo .. inmediatamente despues incias (en el mismo script) el proceso de lectura/moverlo a su destino definitivo.

Un saludo,
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 17:34.