Foros del Web » Programando para Internet » PHP »

renombrar imagenes.

Estas en el tema de renombrar imagenes. en el foro de PHP en Foros del Web. Hola, yo tengo un script php y ftp para que los usuarios puedan subir imagenes, pero quiero saver si hay alguna manera para que a ...
  #1 (permalink)  
Antiguo 04/02/2011, 11:40
 
Fecha de Ingreso: enero-2010
Mensajes: 373
Antigüedad: 14 años, 2 meses
Puntos: 5
renombrar imagenes.

Hola, yo tengo un script php y ftp para que los usuarios puedan subir imagenes, pero quiero saver si hay alguna manera para que a la hora de que se suban las fotos se renombren automaticamente, para que no se puedan cambiar por otra imagen que este en el servidor con el mismo nombre.
como se podria conseguir eso?¿
Saludos.
  #2 (permalink)  
Antiguo 04/02/2011, 11:49
Avatar de abimaelrc
Colaborador
 
Fecha de Ingreso: mayo-2009
Ubicación: En el planeta de Puerto Rico
Mensajes: 14.734
Antigüedad: 14 años, 10 meses
Puntos: 1517
Respuesta: renombrar imagenes.

Primero que la mejor forma de interactuar entre un usuario y aplicación no es usando ftp a menos que sea una aplicación para administradores. Si es para usuarios regulares es usando la variable $_FILES. Para renombrar un archivo se hace con rename o simplemente con move_uploaded_file puedes cambiarle el nombre. Para veriifcar existe una función llamada file_exists, que con ello puedes verificar si el nombre del archivo existe y declarar condiciones para que se muestren de acuerdo a lo que necesites hacer.
__________________
Verifica antes de preguntar.
Los verdaderos amigos se hieren con la verdad, para no perderlos con la mentira. - Eugenio Maria de Hostos
  #3 (permalink)  
Antiguo 04/02/2011, 12:01
 
Fecha de Ingreso: enero-2010
Mensajes: 373
Antigüedad: 14 años, 2 meses
Puntos: 5
Respuesta: renombrar imagenes.

Gracias por responder,
y tu que crees que seria mejor. renombrar todas las imagenes direcatamente, o verificar si existe el nombre de esa imagen y renombrar solo las que tienen el nombre igual ?
  #4 (permalink)  
Antiguo 04/02/2011, 12:08
 
Fecha de Ingreso: diciembre-2010
Mensajes: 180
Antigüedad: 13 años, 3 meses
Puntos: 5
Mensaje Respuesta: renombrar imagenes.

Cita:
Iniciado por kai89 Ver Mensaje
Gracias por responder,
y tu que crees que seria mejor. renombrar todas las imagenes direcatamente, o verificar si existe el nombre de esa imagen y renombrar solo las que tienen el nombre igual ?
Podrias usar un nombre alfanumerico bastante largo... "20j2jhk42b21cgh02fz2" xD porque si es un host de imagenes, cuando resiva muchas visitas va a empezar a aver muchoas imagenes con el mismo nombre
  #5 (permalink)  
Antiguo 04/02/2011, 13:53
 
Fecha de Ingreso: enero-2010
Mensajes: 373
Antigüedad: 14 años, 2 meses
Puntos: 5
Respuesta: renombrar imagenes.

Cita:
Podrias usar un nombre alfanumerico bastante largo... "20j2jhk42b21cgh02fz2" xD porque si es un host de imagenes, cuando resiva muchas visitas va a empezar a aver muchoas imagenes con el mismo nombre
ç
Si claro por eso quiero que las que se reciban con el mismo nombre se modifiquen, para que no haya dos con el mismo nombre ya que se remplazan.
  #6 (permalink)  
Antiguo 04/02/2011, 21:07
 
Fecha de Ingreso: febrero-2011
Mensajes: 5
Antigüedad: 13 años, 1 mes
Puntos: 0
Respuesta: renombrar imagenes.

Una vez trabajando con algo muy parecido, (era una agenda), necesitaba que no se repitieran los nombres de las imagenes y en mi caso lo que implementé era asignarle el nombre del usuario a la imagen. Es decir si la imagen se llamaba sol.jpg lo cambiaba a marta.jpg... en tu caso si son varias imagenes por usuario podes agregar un numero al final del usuario que se vaya incrementando, por ej: marta0.jpg, marta1.jpg...

Todo esto suponiendo por supuesto, que no hay posibilidades de que se repitan los nombres de usuario...

Espero que te sirva... tengo el codigo si lo necesitas... Cualquier cosiña me avisas....

Saludos!

Marian *
  #7 (permalink)  
Antiguo 05/02/2011, 05:15
 
Fecha de Ingreso: enero-2010
Mensajes: 373
Antigüedad: 14 años, 2 meses
Puntos: 5
Respuesta: renombrar imagenes.

Gracias por tu respuesta marian, esta bien tu idea aunque, hay usuarios que no crearan un nombre de usuario ya que utilizaran el e-mail para acceder, pero te agradeceria que me pasaras el codigo para ver si puedo adaptarlo a lo que necesito.
Saludos.
  #8 (permalink)  
Antiguo 05/02/2011, 05:23
Avatar de tunait
Moderadora
 
Fecha de Ingreso: agosto-2001
Ubicación: Terok Nor
Mensajes: 16.805
Antigüedad: 22 años, 7 meses
Puntos: 381
Respuesta: renombrar imagenes.

en estos casos lo que hago es que le asigno por nombre lo que devuelva en ese momento la función time()
  #9 (permalink)  
Antiguo 05/02/2011, 10:08
 
Fecha de Ingreso: febrero-2011
Mensajes: 5
Antigüedad: 13 años, 1 mes
Puntos: 0
Respuesta: renombrar imagenes.

Te paso lo que yo tenia así como esta y como la idea de tunait es buenísima, para este caso, lo que podes hacer es mirando lo que te dejo más abajo fijarte de modificar donde dice $_SESSION['nombre']. por el valor que te devuelve la funcion time()...

El codigo tiene varias casas que no recesitas como un par de referencias al index y muchas otras cosas que hacen a la visualización, no le des bolilla. Si se te complica, avisame y te separo bien lo que tiene que ver con lo que te interesa...

Espero que te sirva!



<?php
//INICIO LA SESION
session_start();

//SI EL USUARIO NO ESTA LOGEADO, LO MANDO AL INDEX
if (empty($_SESSION['nombre']))
{
header('Location:index.php');
}

//DEFINIMOS ALGUNAS VARIABLES NECESARIAS CUANDO SUBIMOS EL ARCHIVO
$status= "";
if ($_POST["action"] == "upload") {
$tamano = $_FILES["archivo"]['size'];
$tipo = $_FILES["archivo"]['type'];
$archivo = $_SESSION['nombre'].".png";

if ($archivo != "") {
$destino = "Usuarios/avatar/".$archivo;
if (copy($_FILES['archivo']['tmp_name'],$destino))
{//ubicación especifica del avatar

$status = "Avatar Cambiado con éxito";

} else {
$status = "Error al subir el archivo";
}
} else {
$status = "Error al subir archivo";
}
}

//OTRAS VARIABLES PARA MOSRTAR EL AVATAR
$nombredelarchivo = "Usuarios/avatar/".$_SESSION['nombre'].".png";
$default = "Usuarios/avatar/default.png";
?>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<title>Cambiar Avatar</title>
<!-- CSS -->
<link rel="stylesheet" href="agenda.css" type="text/css" media="screen">

</head>
<body class="workPage">
<div id="headerr">
<br>
<br>

<h4>TU AVATAR</h4>
<br>
<br>


<?php if (file_exists($nombredelarchivo)) {?>

<h1><img height= 200 width= 200 src="<?php echo $nombredelarchivo?>" alt="Avatar Actual"></h1>
<br><h5>Cambiar Avatar</h5>

<form action="<?php echo $_SERVER['REQUEST_URI']?>" method="post" enctype="multipart/form-data">
<input name="archivo" type="file" class="casilla" id="achivo" size="35"><br>
<br><input name="enviar" type="submit" class="boton" id="eviar" value="Subir Avatar!">
<br><input name="action" type="hidden" value="upload">
</form>
<br>

<h5><?php echo $status; ?></h5>

<TABLE width="100%" cellpadding="10">
<TR>
<TD align="center"><a href="index.php">IR AL INDEX</a>
</table>

<?php } else { ?>
<h1><img height= 200 width= 200 src="<?php echo $default?>" alt="Avatar Actual"></h1>
<br>
<h5>Cambiar Avatar</h5>

<form action="<?php echo $_SERVER['REQUEST_URI']?>" method="post" enctype="multipart/form-data">
<input name="archivo" type="file" class="casilla" id="archivo" size="35"><br>
<br><input name="enviar" type="submit" class="boton" id="enviar" value="Subir Avatar!">
<br><input name="action" type="hidden" value="upload">
</form>

<br>
<TABLE width="100%" cellpadding="10">
<TR>
<TD align="center"><a href="index.php">IR AL INDEX</a>
</table>

<h5><?php echo $status?>
<?php } ?></h5>
</div>
</body>
</html>
  #10 (permalink)  
Antiguo 05/02/2011, 10:08
 
Fecha de Ingreso: febrero-2011
Mensajes: 5
Antigüedad: 13 años, 1 mes
Puntos: 0
Respuesta: renombrar imagenes.

Disculpen que no se subir de otra forma el codigo... *
  #11 (permalink)  
Antiguo 05/02/2011, 11:47
 
Fecha de Ingreso: enero-2010
Mensajes: 373
Antigüedad: 14 años, 2 meses
Puntos: 5
Respuesta: renombrar imagenes.

bueno ahora si logre resolverlo gracias a vosotros, lo que hice fue comprobar primero el nombre de la imagen, y si esta ocupado lo renombro con la fecha, y si esta libre subo la imagen sin renombrearla aki dejo el script modificado por si le quereis echar un vistazo:
Cita:
<?php
//primero verifico si existe el nombre de esa imagen
$nombre_archivo = $FTP_Root . $_FILES['archivo']['name'];
$nombre_archivo1=($nombre_archivo);
$nombre_archiv = "fotos2/$nombre_archivo1";


//si esta ocupado lo renombramos
if (file_exists($nombre_archiv)) {
?>
<?

//DEFINIMOS ALGUNAS VARIABLES NECESARIAS CUANDO SUBIMOS EL ARCHIVO
$status= "";
if ($_POST["action"] == "upload") {
$tamano = $_FILES["archivo"]['size'];
$tipo = $_FILES["archivo"]['type'];
$archivo = ''. date('Y-m-d-h-i-s') .".jpg";


if ($archivo != "") {
$destino = "fotos2/".$archivo;
if (copy($_FILES['archivo']['tmp_name'],$destino))
{//ubicación especifica del avatar

$status = "<img src='fotos2/$archivo' width='200' height='150'>";


} else {
$status = "Error al subir el archivo";
}
} else {
$status = "Error al subir archivo";
}
}

?>
<?
}
else
{

//si no existe ninguna imagen con ese nombre la subira sin cambiar el nombre
$status= "";
if ($_POST["action"] == "upload") {
$tamano = $_FILES["archivo"]['size'];
$tipo = $_FILES["archivo"]['type'];
$nombre_archivo = $FTP_Root . $_FILES['archivo']['name'];
$nombre_archivo1=($nombre_archivo);
$archivo = "$nombre_archivo1";




if ($archivo != "") {
$destino = "fotos2/".$oferta.$archivo;
if (copy($_FILES['archivo']['tmp_name'],$destino))
{//ubicación especifica del avatar

$status = "<img src='fotos2/$archivo' width='200' height='150'>";


} else {
$status = "Error al subir el archivo";
}
} else {
$status = "Error al subir archivo";
}
}



}
?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<title>Cambiar Avatar</title>
<!-- CSS -->
<link rel="stylesheet" href="agenda.css" type="text/css" media="screen">

</head>
<body class="workPage">
<div id="headerr">
<br>
<br>

<h4>TU AVATAR</h4>
<br>
<br>


<?php if (file_exists($nombredelarchivo)) {?>

<h1><img height= 200 width= 200 src="<?php echo $nombredelarchivo?>" alt="Avatar Actual"></h1>
<br><h5>Cambiar Avatar</h5>

<form action="<?php echo $_SERVER['REQUEST_URI']?>" method="post" enctype="multipart/form-data">
<input name="archivo" type="file" class="casilla" id="achivo" size="35"><br>
<br><input name="enviar" type="submit" class="boton" id="eviar" value="Subir Avatar!">
<br><input name="action" type="hidden" value="upload">
</form>
<br>

<h5><?php echo $status; ?></h5>

<TABLE width="100%" cellpadding="10">
<TR>
<TD align="center"><a href="index.php">IR AL INDEX</a>
</table>

<?php } else { ?>
<h1><img height= 200 width= 200 src="<?php echo $default?>" alt="Avatar Actual"></h1>
<br>
<h5>Cambiar Avatar</h5>

<form action="<?php echo $_SERVER['REQUEST_URI']?>" method="post" enctype="multipart/form-data">
<input name="archivo" type="file" class="casilla" id="archivo" size="35"><br>
<br><input name="enviar" type="submit" class="boton" id="enviar" value="Subir Avatar!">
<br><input name="action" type="hidden" value="upload">
</form>

<br>
<TABLE width="100%" cellpadding="10">
<TR>
<TD align="center"><a href="index.php">IR AL INDEX</a>
</table>

<h5><?php echo $status?>
<?php } ?></h5>
</div>
</body>
</html>
Muchas gracias y Saludos.

Etiquetas: imagenes, renombrar
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 02:20.