Foros del Web » Programando para Internet » PHP »

problema con error cuando subo una imagen

Estas en el tema de problema con error cuando subo una imagen en el foro de PHP en Foros del Web. hola quisiera que me ayudaran es que tengo un problema para subir archivos sucede que tengo un script para subir imagenes a una carpeta cuando ...
  #1 (permalink)  
Antiguo 02/03/2009, 17:35
(Desactivado)
 
Fecha de Ingreso: junio-2008
Mensajes: 287
Antigüedad: 15 años, 10 meses
Puntos: 9
problema con error cuando subo una imagen

hola quisiera que me ayudaran es que tengo un problema para subir archivos
sucede que tengo un script para subir imagenes a una carpeta
cuando las subo esta perfecto si las abre y todo, el problema es cuando no hay ninguna imagen, me marca un error y ya lo revise y lo revise y no hallo cual es aqui esta el error

Warning: Invalid argument supplied for foreach()
in /home/chicharrin/domains/chicharrines.net/public_html/new_image/galeria/upload.php on line 185

y aqui esta el codigo que utilizo

Código PHP:
<div id="Layer2">
  <table width="413" border="0" cellspacing="0" cellpadding="0" align="center"> 
  <tr> 
    <td width="413" height="40" class="titulo"><div align="center">Guardar imagenes en chicharines </div></td> 
  </tr> 
  <tr> 
    <td class="text">Por favor selecciona la imagen a Guardar:</td> 
  </tr> 
  <tr> 
      <td class="text"> 
    <form action="upload.php" method="post" enctype="multipart/form-data" > 
        <input name="archivo" type="file" class="casilla" id="archivo" size="35" /> 
          <input name="enviar" type="submit" class="boton" id="enviar" value="Guardar" /> 
    </form> 
    </td> 
  </tr> 
  <tr> 
    <td class="text" style="color:#990000"><?php echo $status?></td> 
  </tr> 
  <tr> 
    <td height="30" class="subtitulo">Listado de Imagenes Guardadas </td> 
  </tr> 
  <tr> 
    <td class="infsub"><br /> 
    <?php 
    
if ($gestor opendir($carpeta)) {         
        while (
false !== ($arch readdir($gestor))){ 
            if (
$arch != "." && $arch != "..") { 
                
$extension explode(".",$arch); 
                
$num count($extension)-1
                
$ext=strtolower($extension[$num]); 
                if(
$ext=='jpg' or $ext=='png' or $ext=='bmp'){ $archivos[]=$arch; } 
            } 
        } 
        
closedir($gestor); 
        
// Ordenas tu array: 
        //sort($archivos);  
        // (y mueves el puntero interno del array al principio ..) 
        //reset($archivos); 
         
        
$i=0
        echo 
'<table width="100%" border="0" cellspacing="0" cellpadding="0" align="center">'
        foreach (
$archivos as $arch){ 
            
$im=getimagesize($carpeta.$arch); 
            
$an=$im[0]; $al=$im[1]; 
            (
$i%2==0)?$color="#CCCCCC":$color="#999999"
            echo 
"<tr style='background:$color'><td width='300' align='left'><li><a href=\"imagenes1/".$arch."\" class=\"linkli\">".$arch."</a></li>\n"
           
            echo 
"<td width='40' align='center'><a href='upload.php' onClick='elimina(\"".$arch."\",\"".$txt."\");' class=\"abrir\"><img src='imagenes/eliminar.png' width='20' height='20' title='Eliminar' alt='Eliminar' border='0'/></a></td><td width='20'></td></tr>"
            
$i++; 
        } 
        echo 
"</table>"
    } 
    
?> 
    </td> 
  </tr> 
</table>
</div>
  #2 (permalink)  
Antiguo 02/03/2009, 17:51
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: problema con error cuando subo una imagen

es tu variable $archivos ¿de donde sacas el valor??

¿seguro que siempre es un array???


lo que sucede, es que al recorrer con while() vas agregando al array $archivos, pero obvio... si no esta declarada, y menos hay archivos... pues no existe!!!

declara la variable como array antes de iniciar el gestor, para evitar este horror....
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
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 07:36.