Foros del Web » Programando para Internet » PHP »

Subir imagen y crear thumbnail en un mismo script

Estas en el tema de Subir imagen y crear thumbnail en un mismo script en el foro de PHP en Foros del Web. Hola, llevo bastante buscando y no soy capáz de adaptar los muchos scripts que he conseguido para que hagan lo que yo quiero. Mi intención ...
  #1 (permalink)  
Antiguo 23/10/2007, 16:39
 
Fecha de Ingreso: octubre-2007
Ubicación: Dentro de un <div>
Mensajes: 39
Antigüedad: 16 años, 5 meses
Puntos: 0
Pregunta Subir imagen y crear thumbnail en un mismo script

Hola, llevo bastante buscando y no soy capáz de adaptar los muchos scripts que he conseguido para que hagan lo que yo quiero.

Mi intención es simple, un formulario que permita al usuario subir una imagen a una carpeta de mi servidor y usando la librería GD que se cree automáticamente un thumbnail (previsualización de la imagen en pequeño) en otra carpeta, quedando almacenadas las dos imágenes (original y thumbnail) en carpetas diferentes.

¿Alguien dispone de un script así, o algún gurú sabría hacerlo?

Gracias.
  #2 (permalink)  
Antiguo 23/10/2007, 16:43
Avatar de acastillog70  
Fecha de Ingreso: septiembre-2003
Ubicación: México, D.F.
Mensajes: 181
Antigüedad: 20 años, 6 meses
Puntos: 1
Re: Subir imagen y crear thumbnail en un mismo script

Te recomiendo que veas en las FAQ, ahí hay algo que te ayudará, te lo digo porque ahí vi algo de lo que tu solicitas, desafortunadamente no recuerdo en que página lo vi y tampoco tengo el código.
Saludos y espero lo encuentres rápido
__________________
Nacemos para morir. De lo demas, no te preocupes, ocupate.
  #3 (permalink)  
Antiguo 23/10/2007, 17:34
 
Fecha de Ingreso: octubre-2007
Ubicación: Dentro de un <div>
Mensajes: 39
Antigüedad: 16 años, 5 meses
Puntos: 0
Re: Subir imagen y crear thumbnail en un mismo script

Cierto !

La solución está aquí:

http://www.forosdelweb.com/249389-post12.html

Muchas gracias acastillog70.
  #4 (permalink)  
Antiguo 23/10/2007, 17:37
Avatar de acastillog70  
Fecha de Ingreso: septiembre-2003
Ubicación: México, D.F.
Mensajes: 181
Antigüedad: 20 años, 6 meses
Puntos: 1
Re: Subir imagen y crear thumbnail en un mismo script

Saludos y que bueno, que te sirvio mi comentario.
Para eso es este foro, para ayudarnos.
Saludos y hasta entonces
__________________
Nacemos para morir. De lo demas, no te preocupes, ocupate.
  #5 (permalink)  
Antiguo 23/10/2007, 17:44
 
Fecha de Ingreso: octubre-2007
Ubicación: Dentro de un <div>
Mensajes: 39
Antigüedad: 16 años, 5 meses
Puntos: 0
Re: Subir imagen y crear thumbnail en un mismo script

Oops !

Hablé antes de tiempo.

En las faq sale un ejemplo de cómo crear un formulario para subir un archivo, pero no de cómo crear un thumbnail automáticamente al subir dicho archivo.

Me falta la otra mitad del trabajo aún :S

¿Alguno mas puede ayudarme por favor?
  #6 (permalink)  
Antiguo 23/10/2007, 18:45
 
Fecha de Ingreso: noviembre-2006
Mensajes: 102
Antigüedad: 17 años, 3 meses
Puntos: 0
Re: Subir imagen y crear thumbnail en un mismo script

Hay las FAQ, siempre responden lo mismo y no es asi, obvio que los que no entendemos las leemos de punta a punta y por eso luego preguntamos, no creo que eso lo consigas ahi y si esta no es muy fácil entenderlo tal cual, pero algun buen chico te va ayudar seguramente, estoy buscando lo mismo y no es sencillo.
  #7 (permalink)  
Antiguo 25/10/2007, 06:49
 
Fecha de Ingreso: octubre-2007
Ubicación: Dentro de un <div>
Mensajes: 39
Antigüedad: 16 años, 5 meses
Puntos: 0
De acuerdo Re: Subir imagen y crear thumbnail en un mismo script

Lo tengo !!!

Al fin, y después de mucho buscar y mucho estudiar cosas que no sabía, lo he conseguido por mi cuenta.

El script subirá la imagen original del usuario a la carpeta que le indiquemos y automáticamente creará un thumbnail con el tamaño que le indiquemos en la carpeta que le indiquemos.

Sólo admite .jpg y .jpeg, debido a que con la librería GD no se pueden crear .gif y las transparencias de los .png dan problemas con el Internet Explorer, así nos evitamos rollos. Sólo jpg's y jpeg's.

Al nombre de la imagen subida se le añade automáticamente un prefijo delante, que son 6 números al azar seguidos por un guión bajo, ejemplo:

Subimos imagen.jpg
La imagen que se guardará se llamará 123456_imagen.jpg
El thumbnail creado se llamará tb_imagen.jpg
¡todo automáticamente solo con subir la imagen!

Procedo a explicarlo con el respectivo código:

Se necesitan 2 cosas, la página html del formulario y la página .php con las instrucciones de lo que tiene que hacer el formulario al aceptarlo.

Página html con el formulario:

Código HTML:
 <form action="upload.php" method="post" enctype="multipart/form-data">
        <input name="archivo" type="file" size="35" />
        <input name="enviar" type="submit" value="Upload File" />
        <input name="action" type="hidden" value="upload" />     
      </form> 
Página .php con las instrucciones:

Código PHP:
<?php
      $status 
"";
      (
$_POST["action"] == "upload") or die ("Error al subir la imagen.");
          
// obtenemos los datos del archivo
          
$tamano $_FILES["archivo"]['size'];
          
$tipo $_FILES["archivo"]['type'];
          
$archivo $_FILES["archivo"]['name'];
          
$prefijo substr(md5(uniqid(rand())),0,6);
         
          
            (
$archivo != "") or die ("Error al subir la imagen ".$archivo);
              
// guardamos el archivo a la carpeta "capturas"
            
($tipo == "image/jpeg" || $tipo == "image/jpg") or die ("Sólo se admiten imágenes en <b>.jpg</b> y <b>.jpeg</b>");
              
$destino =  "capturas/".$prefijo."_".$archivo;
            (
copy($_FILES['archivo']['tmp_name'],$destino)) or die ("Error al subir la imagen ".$archivo);
              
$status "La imagen <b>".$archivo."</b> se a subido correctamente !";
              echo 
$status;
         
//aquí empieza el código de creación del thumbnail
          
$source=$destino// archivo de origen
          
$dest="capturas/thumb/tb_".$archivo// archivo de destino
          
$width_d=117// ancho de salida
          
$height_d=82// alto de salida

            
list($width_s$height_s$type$attr) = getimagesize($source$info2); // obtengo información del archivo
          
$gd_s imagecreatefromjpeg($source); // crea el recurso gd para el origen
          
$gd_d imagecreatetruecolor($width_d$height_d); // crea el recurso gd para la salida

            
imagecopyresampled($gd_d$gd_s0000$width_d$height_d$width_s$height_s); // redimensiona
            
imagejpeg($gd_d$dest); // graba
        
        // Se liberan recursos
        
imagedestroy($gd_s);
        
imagedestroy($gd_d);

?>
Éste script utiliza la librería GD para crear los thumbnails, con lo cual, tienes que tenerla instalada en tu servidor sino no funcionará.

Tienes que cambiar 3 cosas en el código php:

1. La carpeta destino de la imagen original en la línea:

Código PHP:
$destino =  "capturas/".$prefijo."_".$archivo
2. El destino y nombre del thumbnail a crear en la línea:

Código PHP:
$dest="capturas/thumb/tb_".$archivo// archivo de destino 
3. El alto y ancho del thumbnail a crear en las líneas:

Código PHP:
$width_d=117// ancho de salida
          
$height_d=82// alto de salida 
Si teneis alguna duda, basta con decirlo e intentaré solucionarlo.

Suerte !!

Yllelder.
  #8 (permalink)  
Antiguo 25/10/2007, 12:14
 
Fecha de Ingreso: mayo-2004
Mensajes: 903
Antigüedad: 19 años, 10 meses
Puntos: 4
Re: Subir imagen y crear thumbnail en un mismo script

buenísimo, y como se podria mostrarlas tipo album de dw?

funciona perfectoooo!!!

Última edición por mvlsistemas; 25/10/2007 a las 12:21
  #9 (permalink)  
Antiguo 25/10/2007, 14:46
 
Fecha de Ingreso: octubre-2007
Ubicación: Dentro de un <div>
Mensajes: 39
Antigüedad: 16 años, 5 meses
Puntos: 0
Re: Subir imagen y crear thumbnail en un mismo script

Nose como es un álbum de dreamweaver, pero puedes usar cualquier galería escrita en php (o en cualquier lenguaje) que tome las imágenes de la carpeta que le indiques y ya está.

Una galería en php que me gusta mucho es ésta:

http://wingnut.freitagmorgen.de/

En ésta página hay miles de scripts de todo tipo y en varios lenguajes de programación, php entre ellos (está en inglés pero se entiende con los títulos):

http://www.hotscripts.com

Suerte !
  #10 (permalink)  
Antiguo 11/02/2008, 07:01
 
Fecha de Ingreso: noviembre-2004
Mensajes: 4
Antigüedad: 19 años, 4 meses
Puntos: 5
Pregunta Re: Subir imagen y crear thumbnail en un mismo script

Hola! ya sé que este post es de Octubre pero espero que os llegue una notificación de respuesta porque tengo algunas dudas respecto a este script.

Yo necesito crear thumbnail cuadradas pero sin deformar la imagen. Pongo una imagen como ejemplo:



En realidad el original no lo necesito, solo el thumbnail, a poder ser de 200x200 pixeles.

No sé si este código es el que yo necesito porque lo he probado en mi web -cambiando los nombres de las carpetas destino a unas carpetas que he creado para la prueba, claro- y siempre obtengo el mismo error con cualquier imagen que intente subir:

Cita:
Error al subir la imagen archivo.jpg
como si fuera esta la linea que da el error:

Código PHP:
($archivo != "") or die ("Error al subir la imagen ".$archivo); 
Puede esto significar que el servidor que tengo contratado no me proporciona la libreria GD? o se trata de otro problema? Es que ahora mismo no sé como mirar si tengo GD en el server o no.. xD
  #11 (permalink)  
Antiguo 11/05/2008, 14:51
 
Fecha de Ingreso: abril-2007
Ubicación: Buenos Aires
Mensajes: 49
Antigüedad: 16 años, 11 meses
Puntos: 0
Re: Subir imagen y crear thumbnail en un mismo script

Tengo este código que importa imagenes a mi servidor desde otra web, lo que intento ademas es que genere un thumbnail, y guarde el mysql los datos (nombre de archivo, thumb)
Código:
<?php 
function recibe_archivo ($archivo_origen,$archivo_destino){
$mi_curl = curl_init ($archivo_origen); 
$fs_archivo = fopen ($archivo_destino, "w"); 
curl_setopt ($mi_curl, CURLOPT_FILE, $fs_archivo); 
curl_setopt ($mi_curl, CURLOPT_HEADER, 0); 
curl_exec ($mi_curl); 
curl_close ($mi_curl); 
fclose ($fs_archivo); 
}

if(isset($_POST['guardar'])){

$archivo_origen=$_POST['url_imagen'];
$filename = explode("/",$archivo_origen); 
end($filename); 
$archivo_destino="images/".end($filename);
if(recibe_archivo($archivo_origen,$archivo_destino))
{ echo "hubo un error al importar el archivo ".end($filename); 
}else{
echo "Se importo correctamente el archivo ".end($filename);
}
}else{
echo"<form action='".$PHP_SELF."' method='post'><table width='100%'>
<tr>
<td><label>
Url de la imagen: 
<input name='url_imagen' type='text' size='50' />
</label>
<label>
<input type='submit' name='guardar' value='Importar' />
</label></td>
</tr>
</table>
</form>";
}
?>
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.
Tema Cerrado

SíEste tema le ha gustado a 2 personas (incluyéndote)




La zona horaria es GMT -6. Ahora son las 19:21.