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: 12 años, 11 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'] > 0 ){
      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 !