Foros del Web » Programando para Internet » PHP »

uploader fotos me guarda solo .jpg (sin nombre)

Estas en el tema de uploader fotos me guarda solo .jpg (sin nombre) en el foro de PHP en Foros del Web. Me esta pasando algo raro en el servidor remoto. El script que procesa las fotos me esta devolviendo como nombre de la foto subida esto: ...
  #1 (permalink)  
Antiguo 30/10/2010, 08:07
Avatar de mayid
Colaborador
 
Fecha de Ingreso: marzo-2009
Ubicación: BsAs
Mensajes: 4.014
Antigüedad: 15 años, 8 meses
Puntos: 101
uploader fotos me guarda solo .jpg (sin nombre)

Me esta pasando algo raro en el servidor remoto. El script que procesa las fotos me esta devolviendo como nombre de la foto subida esto: ".jpg". Es decir, no procesa bien el nombre de la foto. En mi servidor local, en cambio, todo va bien.

Puede que esto tenga que ver con la version de PHP? En servidor remoto tengo 5.1.x y en local 5.2.9

Publico partes de mi script:

Código PHP:
...
// solo numero letras y guiones bajos
    
$nombre_limpio preg_replace("/[^a-zA-Z0-9s]/""_"$nombre);
    if(
$es_album)
        
$nombre_disponible checkear_preexistencia($nombre_limpio$extension$album_id);
    else
        
$nombre_disponible $nombre_limpio;
    
    
$nuevo_nombre $nombre_disponible "." $extension;
... 
Código PHP:
function checkear_preexistencia($nombre_nuevo$extension$album_id)
{
    
$carpeta FOTOS.$album_id."/";
    
    
$i 1;
        while(
true){
            
$archivo $nombre_nuevo '-' $i '.' $extension;
            if( !
file_exists$carpeta $archivo ) ){     
                return 
$nombre_nuevo.'-'.$i;
            }
            
$i++;
        }    

Algo de esto debe estar fallando. El upload efectivamente se hace, pero me sube un archivo sin nombre, solo con extension, o como ya existe me guarda "-1.jpg", "-2.jpg" etc.
  #2 (permalink)  
Antiguo 30/10/2010, 09:15
Avatar de rickyper  
Fecha de Ingreso: abril-2009
Mensajes: 182
Antigüedad: 15 años, 8 meses
Puntos: 10
Respuesta: uploader fotos me guarda solo .jpg (sin nombre)

Prueba esto:
Código PHP:
Ver original
  1. $nombre_limpio = preg_replace('[^a-zA-Z0-9s]', '_', $nombre);
__________________
www.granideamillonaria.com
  #3 (permalink)  
Antiguo 30/10/2010, 09:40
Avatar de mayid
Colaborador
 
Fecha de Ingreso: marzo-2009
Ubicación: BsAs
Mensajes: 4.014
Antigüedad: 15 años, 8 meses
Puntos: 101
Respuesta: uploader fotos me guarda solo .jpg (sin nombre)

Gracias. Lo probe y es lo mismo.

Acabo de descubrir que el problema es pathinfo.

Esto:
$subdividir = pathinfo( $_FILES['foto']['name'] );

me devuelve esto:
Código PHP:
Ver original
  1. (
  2.     [dirname] => .
  3.     [basename] => en contraste.jpg
  4.     [extension] => jpg
  5. )

Es decir que falta el filename:

$nombre = strtolower($subdividir['filename']);

En el manual se dice que se agrego la variable filename en la version 2:

http://php.net/manual/es/function.pathinfo.php

Conocen alguna alternativa a pathinfo que no sea con explode?
  #4 (permalink)  
Antiguo 30/10/2010, 09:49
Avatar de mayid
Colaborador
 
Fecha de Ingreso: marzo-2009
Ubicación: BsAs
Mensajes: 4.014
Antigüedad: 15 años, 8 meses
Puntos: 101
Respuesta: uploader fotos me guarda solo .jpg (sin nombre)

Bueno, lo solucioné así:

Código PHP:
Ver original
  1. $nombre     = strtolower( basename( $_FILES['foto']['name'] ,'.'.$subdividir['extension']) );
  #5 (permalink)  
Antiguo 30/10/2010, 09:56
Avatar de spider_boy  
Fecha de Ingreso: diciembre-2003
Ubicación: Chile
Mensajes: 1.855
Antigüedad: 21 años
Puntos: 89
Respuesta: uploader fotos me guarda solo .jpg (sin nombre)

Solo tendrías que quitarle la extensión al basename. Lo cual, podrías hacer así :

Código PHP:
Ver original
  1. $subdividir = pathinfo( $_FILES['foto']['name'] );
  2. $name = substr($subdividir['basename'], 0, -3);

Aunque como 3er parámetro para substr, debería ser -4, para eliminra el punto, pero no estoy seguro xD. Prueba y nos cuentas.
__________________
Nunca te olvidaré mi negra hermosa. Te extraño demasiado.
  #6 (permalink)  
Antiguo 30/10/2010, 10:23
Avatar de mayid
Colaborador
 
Fecha de Ingreso: marzo-2009
Ubicación: BsAs
Mensajes: 4.014
Antigüedad: 15 años, 8 meses
Puntos: 101
Respuesta: uploader fotos me guarda solo .jpg (sin nombre)

Gracias spide_boy. Me quedo con la solucion del basename porque no hay que fiarse de que una extension tenga 3 caracteres. Existe el jpeg.

Código PHP:
Ver original
  1. $nombre  = strtolower(basename( $nombre_temporal ,'.'.$extension) );
  #7 (permalink)  
Antiguo 30/10/2010, 10:35
Avatar de spider_boy  
Fecha de Ingreso: diciembre-2003
Ubicación: Chile
Mensajes: 1.855
Antigüedad: 21 años
Puntos: 89
Respuesta: uploader fotos me guarda solo .jpg (sin nombre)

Si, es cierto, pero usando el largo de la $extension, podrías hacerlo con substr . Pero me alegra que te funcionara. Nos vemos.
__________________
Nunca te olvidaré mi negra hermosa. Te extraño demasiado.

Etiquetas: fotos, jpg, nombre, uploader
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 13:58.