Foros del Web » Programando para Internet » PHP »

Subir imagen y cambiar nombre

Estas en el tema de Subir imagen y cambiar nombre en el foro de PHP en Foros del Web. Hola gente, les consulto... Tengo un sistema donde los usuarios suben sus propias imágenes... Pero mi problema es que usan caracteres y mayusculas... Y bueno ...
  #1 (permalink)  
Antiguo 27/11/2007, 19:02
 
Fecha de Ingreso: diciembre-2006
Mensajes: 294
Antigüedad: 17 años, 4 meses
Puntos: 2
Subir imagen y cambiar nombre

Hola gente, les consulto... Tengo un sistema donde los usuarios suben sus propias imágenes... Pero mi problema es que usan caracteres y mayusculas... Y bueno quería saber si alguien sabe como hacer para que una persona suba una imagen y que se suba con otro nombre aleatorio...

Por ejemplo pepe sube: Hola a todos.jpg y que se cambia a un numero.. que se yo, de 10 dígitos, por ejemplo: 1234567891.jpg

Ah otra cosa y que esos numeros nunca se lleguen a repetir...


Muchas gracias.
  #2 (permalink)  
Antiguo 27/11/2007, 20:03
Avatar de eddwinpaz  
Fecha de Ingreso: noviembre-2007
Ubicación: Merida , Venezuela
Mensajes: 1.066
Antigüedad: 16 años, 5 meses
Puntos: 25
Re: Subir imagen y cambiar nombre

Puedes usar UniqID es una funcion builtin de PHP o tambien puedes usar esta que te presentare a continuacion para poder evitar los conflictos de nombres.
Código PHP:
 <?
$imagen 
substr(strrchr($image['name'], "."), 1); 
//$extensiones[$imagen['type']];

        
// Generamos un nombre de archivo Aleatorio para evitar conflictos entre los nombres.
        
$rutaArchivo md5(rand() * time()) . ".$imagen";

?>
  #3 (permalink)  
Antiguo 28/11/2007, 08:17
 
Fecha de Ingreso: diciembre-2006
Mensajes: 294
Antigüedad: 17 años, 4 meses
Puntos: 2
Re: Subir imagen y cambiar nombre

mmm... veo... pero como lo puedo adaptar?? este es mi script...

Código PHP:
echo '<table width="100%" border="0" cellspacing="5" cellpadding="0">
  <tr>
    <td width="50%"><form action="index.php" method="post" enctype="multipart/form-data" name="form1">
  <p align="center"><strong>Archivo</strong><br>
   <input name="archivo" type="file" id="archivo">
  </p>
  <p align="center"><input name="boton" type="submit" id="boton" value="Enviar"></p>
</form></td>
    <td width="50%"><b>Solo se admiten archivo con formato JPG o GIF.</b><br>
      Tamaño máximo aceptado: <span style="color:#FF0000">100KB</span>.<br>
    La imagen solo puede contener letras minusculas y números</td>
  </tr>
</table>
<br><br>'
;
if(
$boton) {
   if (
is_uploaded_file($HTTP_POST_FILES['archivo']['tmp_name'])) {
       if((
$HTTP_POST_FILES['archivo']['type']=="image/jpeg" || "image/gif") & ($HTTP_POST_FILES['archivo']['size'] < 100000)) {
           
copy($HTTP_POST_FILES['archivo']['tmp_name'], $HTTP_POST_FILES['archivo']['name']);
           
$subio true;
   }
}

   if(
$subio) {
      echo 
'<table width="100%" border="0" cellspacing="5" cellpadding="0">
  <tr>
    <td><div align="center"><img src="'
.$_FILES['archivo']['name'].'" /></div></td>
  </tr>
  <tr>
    <td><div align="center">
        <p><strong>URL</strong></p>
    </div></td>
  </tr>
  <tr>
    <td>
      <div align="center">
        <textarea name="textarea3" cols="50" rows="2">http://www.host-image.com.ar/'
.$_FILES['archivo']['name'].'</textarea>
    </div></td>
  </tr>
  <tr>
    <td><div align="center"> </div></td>
  </tr>
  <tr>
    <td><div align="center"><strong>Código para foros</strong></div></td>
  </tr>
  <tr>
    <td><div align="center">
      <textarea name="textarea2" cols="50" rows="2">[url=http://www.host-image.com.ar][img=http://www.host-image.com.ar/'
.$_FILES['archivo']['name'].'][/url]</textarea>
    </div></td>
  </tr>
  <tr>
    <td><div align="center"> </div></td>
  </tr>
  <tr>
    <td><div align="center"><strong>Código HTML</strong></div></td>
  </tr>
  <tr>
    <td><div align="center">
      <textarea name="textarea" cols="50" rows="2"><a href="http://www.host-image.com.ar"><img src="http://www.host-image.com.ar/'
.$_FILES['archivo']['name'].'" border="0"></a></textarea>
    </div></td>
  </tr>
</table>
'
;
   } else {
      echo 
"El archivo no se pudo enviar. Recuerda que debe ser un archivo JPG o GIF y el tamaño no puede exceder los 100KB";
   }
   die();

Disculpa que joda pero no se mucho de PHP... Quisiera hacer un curso pero no puedo

Muchas gracias
  #4 (permalink)  
Antiguo 29/11/2007, 18:04
 
Fecha de Ingreso: diciembre-2006
Mensajes: 294
Antigüedad: 17 años, 4 meses
Puntos: 2
Re: Subir imagen y cambiar nombre

alguien me puede ayudar por favor??

gracias
  #5 (permalink)  
Antiguo 29/11/2007, 18:23
Avatar de Seppo  
Fecha de Ingreso: marzo-2005
Ubicación: Buenos Aires, Argentina
Mensajes: 1.284
Antigüedad: 19 años, 1 mes
Puntos: 17
Re: Subir imagen y cambiar nombre

En vez de usar $HTTP_POST_FILES['archivo']['name'] deberías poner el nombre que le quieras asignar y la ruta donde lo quieras guardar
  #6 (permalink)  
Antiguo 29/11/2007, 18:42
okram
Invitado
 
Mensajes: n/a
Puntos:
Re: Subir imagen y cambiar nombre

Revisa el manual de PHP para la función copy().
Código PHP:
$info pathinfo($_FILES['archivo']['name']);
$nnombre md5(rand().time()).".".$info['extension'];
copy($_FILES['archivo']['tmp_name'], $nnombre); 
Un saludo,

Última edición por okram; 29/11/2007 a las 18:43 Razón: Cambio de $HTTP_POST_FILES a $_FILES (Te sera util para PHP 6)
  #7 (permalink)  
Antiguo 29/11/2007, 19:02
Avatar de pato12  
Fecha de Ingreso: septiembre-2007
Ubicación: Salta
Mensajes: 1.620
Antigüedad: 16 años, 6 meses
Puntos: 101
Re: Subir imagen y cambiar nombre

para generar el nombre algo haci:
Código PHP:
<?php 
// Función para generar nombres de 16 caracteres aleatorios 
function F_gen_password($Paswd_Length){ 
$lower_ascii_bound 50
$upper_ascii_bound 122

$notuse = array (58,59,60,61,62,63,64,73,79,91,92,93,94,95,96,108111); 
$i 0
$password ''
while (
$i $Paswd_Length){ 
mt_srand((double)microtime() * 1000000); 

$randnum mt_rand($lower_ascii_bound$upper_ascii_bound); 
if (!
in_array($randnum$notuse)){ 
$password $password.chr($randnum); 
$i++; 
}; 
}; 
return 
$password
} ; 
echo 
'el nombre aletorio es'.$cadena_aleatoria ;
?>
y ya te digo despues como cambiar el nombre.
te sirbe esto??
Suerte
salu2
__________________
Half Music - www.halfmusic.com

Última edición por pato12; 29/11/2007 a las 19:11
  #8 (permalink)  
Antiguo 29/11/2007, 19:04
 
Fecha de Ingreso: diciembre-2006
Mensajes: 294
Antigüedad: 17 años, 4 meses
Puntos: 2
Re: Subir imagen y cambiar nombre

Mmmm!! muchas gracias ahora capte como es el tema de los archivos... ahora se me re abrió la mente... pero... tengo un pequeño problema.... yo uso para mostrar la imagen que se sube:

Código PHP:
<img src="'.$_FILES['archivo']['name'].'" /> 
Pero eso muestra el nombre de la imagen del usuario....
Intenté con esto pero no da resultado...

Código PHP:
<img src="'.$_FILES['archivo']['tmp_name'], $nnombre.'" /> 

Como podría ser??

Gracias
  #9 (permalink)  
Antiguo 29/11/2007, 19:07
okram
Invitado
 
Mensajes: n/a
Puntos:
Re: Subir imagen y cambiar nombre

Código PHP:
echo "<img src=\"$nnombre\"/>"
Un saludo,
  #10 (permalink)  
Antiguo 29/11/2007, 19:08
 
Fecha de Ingreso: diciembre-2006
Mensajes: 294
Antigüedad: 17 años, 4 meses
Puntos: 2
Re: Subir imagen y cambiar nombre

Nuuu!!! ya está gracias le puse $nnombre y listo!!!


Bueno muchas gracias gente por todo... Si desean puenden utilizar el servicios: http://www.host-image.com.ar
  #11 (permalink)  
Antiguo 29/11/2007, 20:50
 
Fecha de Ingreso: abril-2006
Mensajes: 1.128
Antigüedad: 18 años
Puntos: 33
Re: Subir imagen y cambiar nombre

Gesking:
Primeramente, tu sitio esta muy muy interesante, mis mas sinceras felicitaciones y animandote a continuar.
Te sugiero que le agregues a tu pagina de entrada algo asi:
<input ................................etc>
Y en el php la recibes asi:
$nombre = $_POST['minombre'];

Objetivo:
Permitir a tus usuarios seleccionar el nombre final al archivo de tal manera
que el enlace llevara como parte el nombre que tu usuario ha seleccionado desde la web.

Esto yo lo hago apoyado en este codigo ya probado en php:
Leelo con cuidado>

if(is_uploaded_file($_FILES['archivo']['tmp_name'])) { // verifica haya sido cargado el archivo
$archivo = $_FILES['archivo']['name'];
$tipo = stristr($archivo,'.');
$nombre = $nombre.$tipo;
$nombre = strtolower($nombre);
$nombre = rtrim($nombre);
$SUBIRADIRECCION = $_SERVER['DOCUMENT_ROOT']."/archivos/";
$SUBIRADIRECCION .= "$archivo";
$SUBIRADIRECCIONXYZ = $_SERVER['DOCUMENT_ROOT']."/archivos/";
$SUBIRADIRECCIONXYZ .= "$nombre";
echo "<body bgcolor=\"#FF9900\">";
if(move_uploaded_file($_FILES['archivo']['tmp_name'], $SUBIRADIRECCION)) { // se coloca en su lugar final
if($_FILES['archivo']['size'] == "0") {
echo "No Se Pudo Transferir El Contenido Adecuadamente<br>";
echo "Intentelo Nuevamente<br>";
echo "GRACIAS<br>";
echo "<br><a href=\"http://tusitio.com/index.html\">VOLVER AL INICIO<a/>";
exit();
}
$rutaarchivosxxx = $_SERVER['DOCUMENT_ROOT']."/archivos/$nombre";
if(file_exists($rutaarchivosxxx)) {
echo "El Nombre De Archivo YA EXISTE!<br>";
echo "CAMBIELO!!!<br>";
echo "E Intentelo Nuevamente!<br>";
echo "GRACIAS<br>";
echo "<br><a href=\"http://tusitio.com/index.html\">VOLVER AL INICIO<a/>";
exit();
}
rename("$SUBIRADIRECCION", "$SUBIRADIRECCIONXYZ");
echo "<b>Upload exitoso!. Datos:</b><br>";
echo "Nombre: <i><a href=\"http://tusitio.com/archivos/$nombre\">$nombre</a></i><br>";
echo "Tipo MIME: <i>".$_FILES['archivo']['type']."</i><br>";
echo "Tamaño: <i>".$_FILES['archivo']['size']." bytes</i><br>";
echo "<hr><br>";
}
else {
echo "No Se Pudo Colocar El Archivo En Su Ubicacion Final!<br>";
echo "Probar Nuevamente.<br>";
echo "<br><a href=\"http://tusitio.com/index.html\">VOLVER AL INICIO<a/>";
exit();
}
}
else {
echo "Hubo Error En La Subida Del Archivo!<br>";
echo "Probar Nuevamente.<br>";
echo "<br><a href=\"http://tusitio.com/index.html\">VOLVER AL INICIO<a/>";
exit();
}

Saludos
Y espero te ayude
Franco
  #12 (permalink)  
Antiguo 01/12/2007, 22:37
 
Fecha de Ingreso: diciembre-2006
Mensajes: 294
Antigüedad: 17 años, 4 meses
Puntos: 2
Re: Subir imagen y cambiar nombre

Hola. Gracias franco tienes buena idea...

Queria decirles que modifiqué el sitio www.host-image.com.ar y bueno, ahora esta mejor para que la gente suba imagenes.
Por el momento estoy ocupado porque me mudo a cordoba y ya tengo un trabajito para empezar a buscar información, a si que bueno, cuando tenga tiempo sigo mejorando Host Image y lo que quiero hacer es llegar a hacer todo con base de datos mysql. Para así llegar a tener mas control y brindar mejores servicios jejeje

Bueno, si dios quiere y funciona el sitio, lo voy a seguir actualizando hasta hacer un buen portal.

Gracias a todos. Mucha suerte
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 13:03.