Foros del Web » Programando para Internet » PHP »

Subida de imágen

Estas en el tema de Subida de imágen en el foro de PHP en Foros del Web. Estoy haciendo un sistema para subir avatares al servidor y luego mostrarlos, pero no me sube el archivo. Este es el código del formulario: Código ...
  #1 (permalink)  
Antiguo 11/01/2010, 09:35
Avatar de TheRD  
Fecha de Ingreso: junio-2009
Mensajes: 120
Antigüedad: 14 años, 10 meses
Puntos: 0
Subida de imágen

Estoy haciendo un sistema para subir avatares al servidor y luego mostrarlos, pero no me sube el archivo.

Este es el código del formulario:
Código PHP:
case 'avatar':
    echo 
'<form action="users?mode=edited&section=avatar" method="POST" enctype="multipart/form-data">
    <fieldset><label for="pass_ant">Subir avatar:</label><input type="file" name="ava_user_edit"/></fieldset>
    <input type="hidden" name="edit_uid" value="' 
$edit_id '"/>
    <input type="submit" value="Actualizar" /></form>'
;
break; 
Y este el del procesamiento del mismo:
Código PHP:
case 'avatar'//Falta comprobar tamaños de avatar
    
$e_id $_POST['edit_uid'];
    
secure_vars_spec($e_id);
    
$ed_id mysql_real_escape_string($e_id);

    if(
$_POST){
        
$str "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz1234567890";
        
$cad "";
        for(
$i=0;$i<12;$i++) {
            
$cad .= substr($str,rand(0,62),1);
        }
        
$tamano $_FILES 'ava_user_edit' ][ 'size' ]; // Leemos el tamaño del fichero
        
$tamano_max="500000"// Tamaño máximo permitido
        
if( $tamano $tamano_max){ // Comprobamos el tamaño 
            
$destino '/images/avatars/upload/' // Carpeta donde se guardará
            
$sep=explode('image/',$_FILES["ava_user_edit"]["type"]); // Separamos image/
            
$tipo=$sep[1]; // Obtenemos el tipo de imagen que es
            
$tmp_name $_FILES['ava_user_edit']['tmp_name'];
            if(
$tipo == "gif" or $tipo == "pjpeg" or $tipo == "png"){
                
move_uploaded_file ($tmp_name$destino .$cad.'.'.$tipo);
                
$avatar_root $destino $cad '.' $tipo;
                
mysql_query("UPDATE users SET user_avatar='$avatar_root' WHERE user_id='$ed_id'");
                
Header("Location: users?mode=edit&tab=avatar&updated=true");
            }else{ 
                
Header("Location: users?mode=edit&tab=avatar&updated=no_perm_ava_type");
            }
        }else{
            
Header("Location: users?mode=edit&tab=avatar&updated=max_size_ava");
        }
    }else{
        
Header("Location: users?mode=edit&tab=avatar&updated=no_file_ava");
    }
break; 
Lo probé en localhost y pensando que tal vez era culpa de eso lo probé en un servidor. En ninguno de los dos casos me sube el archivo a la carpeta que he especificado, lo único que hace es meter la dirección del avatar en la base de datos.
¿Alguien podría decirme que estoy haciendo mal?
Saludos.
  #2 (permalink)  
Antiguo 11/01/2010, 09:51
Avatar de maycolalvarez
Colaborador
 
Fecha de Ingreso: julio-2008
Ubicación: Caracas
Mensajes: 12.120
Antigüedad: 15 años, 9 meses
Puntos: 1532
Respuesta: Subida de imágen

le has dado permisos de escritura al directorio?
verificaste que el peso del avatar sea menor a 2MB?: cambia max_upload_file_size en php.ini
  #3 (permalink)  
Antiguo 11/01/2010, 10:10
Avatar de TheRD  
Fecha de Ingreso: junio-2009
Mensajes: 120
Antigüedad: 14 años, 10 meses
Puntos: 0
Respuesta: Subida de imágen

Los permisos de escritura ._., siento haber molestado por tan burdo error ^^U fue lo único que no se me ocurrió xD.
  #4 (permalink)  
Antiguo 11/01/2010, 10:12
Avatar de maycolalvarez
Colaborador
 
Fecha de Ingreso: julio-2008
Ubicación: Caracas
Mensajes: 12.120
Antigüedad: 15 años, 9 meses
Puntos: 1532
Respuesta: Subida de imágen

Cita:
Iniciado por TheRD Ver Mensaje
Los permisos de escritura ._., siento haber molestado por tan burdo error ^^U fue lo único que no se me ocurrió xD.
tranquilo, a palos también se aprende XD

Etiquetas: subida
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 23:45.