Ver Mensaje Individual
  #3 (permalink)  
Antiguo 13/02/2009, 17:06
Avatar de danico90
danico90
 
Fecha de Ingreso: febrero-2009
Ubicación: San José, Costa Rica
Mensajes: 148
Antigüedad: 15 años, 2 meses
Puntos: 13
Respuesta: Cambiar nombre a archivo con PHP

Gracias por responder.

Lo hice de esta manera:
Código PHP:
function uploadfotoChangeName($_FILES){//sube el archivo y cambia el nombre
    
if(is_uploaded_file($_FILES['file']['tmp_name'])){
    
$fileName=$_FILES['file']['name'];
    
$uploadDir="upload/";
    
$uploadFile=$uploadDir.$fileName;    
    
$num 0;
    
$name $fileName;
    
$extension end(explode('.',$fileName));
    
$onlyName substr($fileName,0,strlen($fileName)-(strlen($extension)+1));
    while(
file_exists($uploadDir.$name)){
        
$num++;            
        
$name $onlyName."".$num.".".$extension;
    }
    
$uploadFile $uploadDir.$name;
    
move_uploaded_file($_FILES['file']['tmp_name'], $uploadFile);
    return(
$name);    
    }    

Tiene un return porq necesitaba q me devolviera el nombre para meterlo a la base de datos.

Ahora voy a explicarlo un poco , por si le sirve a alguien...

Primero recibe como parametro un $_FILES.

Luego valido si se puede subir:
Código PHP:
if(is_uploaded_file($_FILES['file']['tmp_name'])){ 
Las variables:
Código PHP:
$fileName=$_FILES['file']['name'];//nombre del archivo q voy a subir
$uploadDir="upload/";                  //directorio donde lo voy a subir
$uploadFile=$uploadDir.$fileName;//default por si no cambia el nombre
$num 0;          //contador para ponerle numero al archivo
$name $fileName//declaro $name para conservar $fileName 
Separo la extension y el nombre:
Código PHP:
//saca la extension sin el punto(Ej:"jpg"), el end() es para agarrar el ultimo punto en caso d q el nombre contenga mas de 1 punto
$extension end(explode('.',$fileName));    
//saca el nombre sin la extension(Ej:"archivo")
$onlyName substr($fileName,0,strlen($fileName)-(strlen($extension)+1)); 
El ciclo:
Código PHP:
while(file_exists($uploadDir.$name)){//revisa si ya existe el archivo
    
$num++;        
     
//arma el archivo (Ej:"archivo1.jpg","archivo2.jpg")    
    
$name $onlyName."".$num.".".$extension;

El final:
Código PHP:
//junta el nombre del archivo con el directorio donde lo va a subir 
$uploadFile $uploadDir.$name;
//sube el archivo, notese que en el primer parametro entra el nombre el archivo q se va a subir y el segundo parametro cambia el nombre para renombrarlo en el directorio donde se va a subir
move_uploaded_file($_FILES['file']['tmp_name'], $uploadFile);