Ver Mensaje Individual
  #8 (permalink)  
Antiguo 27/07/2012, 15:52
markos22
 
Fecha de Ingreso: mayo-2012
Mensajes: 26
Antigüedad: 12 años, 6 meses
Puntos: 2
Respuesta: script para subir imagenes

Cita:
Iniciado por santi_64 Ver Mensaje
Buenos días, eh aqui un problema y me gustaría saber si tendría solución.
En esta web conseguí un código para subir imágenes. (http://www.forosdelweb.com/wiki/PHP:Manejando_imagenes_al_subirlas_al_servidor)

El script funciona de 10. Pero tengo 2 problemitas..
El primero es que no se puede subir una imagen que de nombre tenga espacios, como por ejemplo "sin nombre" sino que tendría que ser "sinnombre" me gustaría saber como se podría hacer para que acepte los espacios.
Y el segundo, cuando se sube una imagen, se sube sin problemas. Pero si otro cualquier sube otra imagen pero con el mismo nombre, en vez de crear "sinnombre2" la reemplaza y la primera se borra quedando la segunda. La idea es que se cree con otro nombre, o con un numero detrás, para que no se reemplace :P.

Desde ya muchas gracias!
hola santi

lo que puedes hacer es utilizando el mismo codigo del ejemplo de forosdelweb
que se llama ModifiedImage.php

modificandolo un poco con lo que te comentaban anteriormente puedes subir las imagenes que tengan espacios y si tienen el mismo nombre no se sobreescriben.

el ejemplo q te dejo, te redimensiona las imagenes a 200px de alto.

no olvides crear la carpeta images_upload justo donde esta el index.php de subida como el ejemplo q te dejo a continuacion.

ahh si quieres ver la imagen de subida, en el ejemplo cambia el /3333/ por la ruta de tu localhost

como yo lo probe en wamp, lo tenia en esta ubicacion

http://localhost/3333/index.php


el codigo de ModifiedImage.php lo puedes sacar desde (http://www.forosdelweb.com/wiki/PHP:Manejando_imagenes_al_subirlas_al_servidor)

aca el codigo del index.php

Código PHP:
Ver original
  1. <?php
  2. if(!empty($_FILES['image']) && $_FILES['image']['error'] == UPLOAD_ERR_OK) {
  3.     require_once 'ModifiedImage.php';
  4.  
  5.     $image = new ModifiedImage($_FILES['image']['tmp_name']);
  6.  
  7.     if($image->getHeight() > 200){
  8.         $image->resizeToHeight(200);
  9. /////////////////////////////////////////////////////////////
  10.         //seleccionamos la carpeta donde se subiran las imagenes
  11.         $carpeta = 'images_upload/';
  12.         $nombrebre_orig = $_FILES['image']['name'];
  13.         //recibimos el nombre original y lo explotamos, ya sea que tenga espacios o no.
  14.         $array_nombre = explode('.',$nombrebre_orig);
  15.         $cuenta_arr_nombre = count($array_nombre);
  16.         $extension = strtolower($array_nombre[--$cuenta_arr_nombre]);
  17.         //nombre aleatorio, en si numeros
  18.         $nombre_nuevo = time().'_'.rand(0,100).'.'.$extension; 
  19.         //generamos el nombre final
  20.         $h200 = $carpeta.'h200_'.$nombre_nuevo;
  21.         //guardamos la imagen
  22.         $image->save($h200);
  23. /////////////////////////////////////////////////////////////
  24.     }
  25. ?>
  26. Imagen grabada:
  27. <!--  Cambia el /3333/ por la direccion de tu localhost -->
  28. <a href="/3333/<?php echo $h200; ?>">Click para ver la imagen subida</a>
  29. <?php } ?>
  30.  
  31. <form action="<?php echo $_SERVER['PHP_SELF']; ?>" method="post" enctype="multipart/form-data">
  32.     <input type="file" name="image" />
  33.     <input type="submit" name="submit" value="Upload" />
  34. </form>

espero te sirva, cualquier cosa nos cuentas, saludos.