Ver Mensaje Individual
  #1 (permalink)  
Antiguo 21/03/2015, 13:11
RyanTylor
 
Fecha de Ingreso: noviembre-2013
Ubicación: New York
Mensajes: 114
Antigüedad: 10 años, 5 meses
Puntos: 1
Pregunta Como renombrar un archivo al subirlo ?

Saludos gente,

La cuestion esta asi, tengo una pagina que lo que hace es subir un archivo a una carpeta llamada catalogs, el codigo que tengo hace su debido trabajo pero ahora quiero renombrar el archivo y ponerle un nombre unico que no se vaya a repetir nunca, una vez que ya tenga ese nombre unico ponerselo al archivo que se subio y en una variable almacenar toda la ruta con el nombre unico dado al archivo subido. Ahorita tengo este codigo:
Código PHP:
<?php
$frm_upload 
$_SERVER['PHP_SELF'];

  
$nombre $_FILES['archivo']['name'];
  
$nombre_tmp $_FILES['archivo']['tmp_name'];
  
$tipo $_FILES['archivo']['type'];
  
$tamano $_FILES['archivo']['size'];
 
  
$ext_permitidas = array('jpg','jpeg','gif','png');
  
$partes_nombre explode('.'$nombre);
  
$extension end$partes_nombre );
  
$ext_correcta in_array($extension$ext_permitidas);
 
  
$tipo_correcto preg_match('/^image\/(pjpeg|jpeg|gif|png)$/'$tipo);
 
  
$limite 500 1024;
 
  if( 
$ext_correcta && $tipo_correcto && $tamano <= $limite ){
    if( 
$_FILES['archivo']['error'] > ){
      echo 
'Error: ' $_FILES['archivo']['error'] . '<br/>';
    }else{
      echo 
'Nombre: ' $nombre '<br/>';
      echo 
'Tipo: ' $tipo '<br/>';
      echo 
'Tamaño: ' . ($tamano 1024) . ' Kb<br/>';
      echo 
'Guardado en: ' $nombre_tmp;
 
      if( 
file_exists'catalogs/'.$nombre) ){
        echo 
'<br/>El archivo ya existe: ' $nombre;
      }else{
        
move_uploaded_file($nombre_tmp,"catalogs/" $nombre);
 
        echo 
"<br/>Guardado en: " "catalogs/" $nombre;
      }
    }
  }else{
    echo 
'Archivo inválido';
  }
?>
<form action="<?php echo $frm_upload?>" method="post" enctype="multipart/form-data">
  <label for="archivo">Archivo:</label>
  <input type="file" name="archivo" id="archivo" />
  <br/>
  <input type="submit" value="Enviar" />
</form>
He buscado en la red y sinceramente no he podido encontrar un ejemplo que solucione mi problema. gracias !