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>