Cita:
Iniciado por santi_64 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<?php
if(!empty($_FILES['image']) && $_FILES['image']['error'] == UPLOAD_ERR_OK
) { require_once 'ModifiedImage.php';
$image = new ModifiedImage($_FILES['image']['tmp_name']);
if($image->getHeight() > 200){
$image->resizeToHeight(200);
/////////////////////////////////////////////////////////////
//seleccionamos la carpeta donde se subiran las imagenes
$carpeta = 'images_upload/';
$nombrebre_orig = $_FILES['image']['name'];
//recibimos el nombre original y lo explotamos, ya sea que tenga espacios o no.
$array_nombre = explode('.',$nombrebre_orig); $cuenta_arr_nombre = count($array_nombre); $extension = strtolower($array_nombre[--$cuenta_arr_nombre]); //nombre aleatorio, en si numeros
$nombre_nuevo = time().'_'.rand(0,100).'.'.$extension; //generamos el nombre final
$h200 = $carpeta.'h200_'.$nombre_nuevo;
//guardamos la imagen
$image->save($h200);
/////////////////////////////////////////////////////////////
}
?>
Imagen grabada:
<!-- Cambia el /3333/ por la direccion de tu localhost -->
<a href="/3333/<?php echo $h200; ?>">Click para ver la imagen subida</a>
<?php } ?>
<form action="<?php echo $_SERVER['PHP_SELF']; ?>" method="post" enctype="multipart/form-data">
<input type="file" name="image" />
<input type="submit" name="submit" value="Upload" />
</form>
espero te sirva, cualquier cosa nos cuentas, saludos.