Foros del Web » Programando para Internet » PHP »

Ayuda $_FILES ni $HTTP_POST_FILES no me devuelve datos

Estas en el tema de Ayuda $_FILES ni $HTTP_POST_FILES no me devuelve datos en el foro de PHP en Foros del Web. Hola amigos, estoy intentando hacer una galeria de fotos para una web en php. Tengo dos script de dos webs alojadas en el mismo servidor ...
  #1 (permalink)  
Antiguo 01/06/2009, 14:21
 
Fecha de Ingreso: marzo-2007
Mensajes: 42
Antigüedad: 17 años, 1 mes
Puntos: 0
Ayuda $_FILES ni $HTTP_POST_FILES no me devuelve datos

Hola amigos, estoy intentando hacer una galeria de fotos para una web en php.
Tengo dos script de dos webs alojadas en el mismo servidor y en uno funciona correctamente y en otro no. Os los muestro
No funciona:
Código PHP:
if (isset($_GET['subeimagen'])){

    
$resultado=mysql_query("select max(idimagen) maximo from imagenes");

                       
$RS mysql_fetch_array($resultado);

                    
$idimagen=$RS[0];

                    
// Buscamos el primer ID libre-------------------------------

                     
if ($RS) {

                      
$idimagen=$idimagen+1;

                        }

                    else {

                            
$idimagen=1;}


    
$idgaleria = ($HTTP_POST_VARS["idgaleria"]);

        
$uploaddir "../images/";
     
$uploaddir2 "../images/mini/";
       
$nombre_archivo =$_FILES['imagen']['name'];

        
$nombre_archivo2 =$uploaddir2.$_FILES['imagen']['name'];

    
$direth "./images/";
    
$direthu $direth.$_FILES['imagen']['name'];

    
$error 0;



             

        
$tipo_archivo $HTTP_POST_FILES['imagen']['type'];

        
$tamano_archivo $HTTP_POST_FILES['imagen']['size'];

        
//si las características del archivo son las que deseo

        

        
if (!((strpos($tipo_archivo"gif") || strpos($tipo_archivo"jpeg")) && ($tamano_archivo 5000000))) {

            echo 
"La extensión o el tamaño del archivo <strong>$nombre_archivo $idimagen</strong> no es correcta."

                  
            
$error 1;
}....... 
Este es el que no me funciona y siempre se me queda en ese if, por mucho que intento mostrar las variables no me da resultados, por ejemplo el $nombre_archivo no me lo devuelve. En cambio en este otro script si me funciona todo perfectamente:


Código PHP:
if (isset($_GET['agrega'])){

    
$pag = ($HTTP_POST_VARS["idpag"]);

    
//////UPLOAD    

    
$idpag = ($HTTP_POST_VARS["idpag"]);
        
$uploaddir "../imagenes/$idpag/";
    
$direfo "imagenes/$idpag/";
    
$direfoto $direfo.$_FILES['imagen']['name'];

       
$nombre_archivo $uploaddir.$_FILES['imagen']['name'];

        
$uploaddir2 "../imagenes/$idpag/mini/";
        
$nombre_archivo2 $uploaddir2.$_FILES['imagen']['name'];

    
$direth "imagenes/$idpag/mini/";
    
$direthu $direth.$_FILES['imagen']['name'];

    
$error 0;

             

        
$tipo_archivo $HTTP_POST_FILES['imagen']['type'];

        
$tamano_archivo $HTTP_POST_FILES['imagen']['size'];

        
//si las características del archivo son las que deseo

        

        
if (!((strpos($tipo_archivo"gif") || strpos($tipo_archivo"jpeg")) && ($tamano_archivo 5000000))) {

            echo 
"La extensión o el tamaño del archivo <strong>$nombre_archivo</strong> no es correcta."

           
$error 1;

        }else{...... 
Formulario del que no funciona:
Código HTML:
<form action='scriptimagenes.php?subeimagen' method='post' >
					<input name='idgaleria' value=' <?echo $idgaleria;?>' type='hidden'>

                                      <table border='0' width='600' cellspacing='0' cellpadding='0'>

                                        <tr>

                                          <td width='5%' align='left'>Imagen:</td>

                                          <td  width='95%'><input type='file' name='imagen'> </td>

                                        </tr>
					<tr>

                                          <td width='5%' align='left'>Nombre: </font></td>

                                          <td width='95%'> <textarea rows='1' name='nombre' cols='60'></textarea></td>

                                        </tr>
					<tr>

                                          <td width='5%' align='left'>Descripcion: </font></td>

                                          <td width='95%'> <textarea rows='2' name='descripcion' cols='60'></textarea></td>

                                        </tr>
					<tr>

                                          <td width='5%' align='left'>Palabras clave: </font></td>

                                          <td width='95%'>

                                            <textarea rows='2' name='palabrasclave' cols='60'></textarea></td>

                                        </tr>
						                                        

                                                                     

                                            <tr>

                                          <td>

                                              <br>

                                          <input type='submit' value="subir imagen" name="subeimagen"> </td><td></td>

                                        </tr>


</table></form> 
En el primero por ejemplo un $HTTP_POST_VARS['imagen'] si me devuelve el nombre del archivo. Alguien puede darme alguna idea?

Hasta el momento e probado variables $_FILES, $HTTP_POST_FILES.
Register globals.....on
Uploadsfiles.....on

Que mas puede pasar??
  #2 (permalink)  
Antiguo 01/06/2009, 14:22
 
Fecha de Ingreso: marzo-2007
Mensajes: 42
Antigüedad: 17 años, 1 mes
Puntos: 0
Respuesta: Ayuda $_FILES ni $HTTP_POST_FILES no me devuelve datos

Solucionado, error tonto, no puse enctype="multipart/form-data" en el formulario, pero tuve que postear para darme cuenta

Saludos
  #3 (permalink)  
Antiguo 01/06/2009, 14:24
Avatar de Ronruby  
Fecha de Ingreso: julio-2008
Ubicación: 18°30'N, 69°59'W
Mensajes: 4.879
Antigüedad: 15 años, 9 meses
Puntos: 416
Respuesta: Ayuda $_FILES ni $HTTP_POST_FILES no me devuelve datos

Código php:
Ver original
  1. if (!((strpos($tipo_archivo, "gif") || strpos($tipo_archivo, "jpeg")) && ($tamano_archivo < 5000000))) {

Tu variable $tipo_archivo trae el tipo MIME del archivo, ej: "image/jpeg" o "image/gif". Por eso siempre te muestra ese error.
  #4 (permalink)  
Antiguo 01/06/2009, 14:26
 
Fecha de Ingreso: marzo-2007
Mensajes: 42
Antigüedad: 17 años, 1 mes
Puntos: 0
Respuesta: Ayuda $_FILES ni $HTTP_POST_FILES no me devuelve datos

Cita:
Iniciado por Ronruby Ver Mensaje
Código php:
Ver original
  1. if (!((strpos($tipo_archivo, "gif") || strpos($tipo_archivo, "jpeg")) && ($tamano_archivo < 5000000))) {

Tu variable $tipo_archivo trae el tipo MIME del archivo, ej: "image/jpeg" o "image/gif". Por eso siempre te muestra ese error.
Era por lo que e puesto arriba, gracias de todas formas
  #5 (permalink)  
Antiguo 01/06/2009, 15:16
Avatar de Ronruby  
Fecha de Ingreso: julio-2008
Ubicación: 18°30'N, 69°59'W
Mensajes: 4.879
Antigüedad: 15 años, 9 meses
Puntos: 416
Respuesta: Ayuda $_FILES ni $HTTP_POST_FILES no me devuelve datos

Cita:
Iniciado por dijor69 Ver Mensaje
Era por lo que e puesto arriba, gracias de todas formas
Si, ahora que veo bien, usas strpos() xD Por lo que ese código si funciona.
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 21:38.