Foros del Web » Programando para Internet » PHP »

checkbox y ficheros de directorio

Estas en el tema de checkbox y ficheros de directorio en el foro de PHP en Foros del Web. hola. tengo un directorio del cual leo los ficheros que hay en él y los muestro. el código que utilizo para ello es el siguiente: ...
  #1 (permalink)  
Antiguo 16/04/2007, 03:06
Avatar de estibaliz2006  
Fecha de Ingreso: noviembre-2006
Mensajes: 439
Antigüedad: 18 años
Puntos: 1
checkbox y ficheros de directorio

hola. tengo un directorio del cual leo los ficheros que hay en él y los muestro. el código que utilizo para ello es el siguiente:

Código PHP:
$path "directorio"
if (
$handle opendir($path))  
    { 
while (
false !== ($file readdir($handle)))  

        { 

            if (
$file != "." && $file != "..")  

            {     

             
$fName $file

            
$file $path.'/'.$file
if(
is_file($file))////si es un fichero 

print
"<a href='".$file."'>".$fName."</a>"

bien. yo ahora lo que quiero es que a la izquierda de cada fichero que me lista, aparezca un checkbox, y a la derecha del fichero un enlace 'eliminar', de tal modo que si yo activo el checkbox y le doy a eliminar, pueda eliminar el archivo. pero es más: si activo por ejemplo tres checkbox de otros tantos ficheros y le doy a eliminar, se eliminen los tres checkbox. cómo hago esto?
gracias....
  #2 (permalink)  
Antiguo 16/04/2007, 08:36
Avatar de estibaliz2006  
Fecha de Ingreso: noviembre-2006
Mensajes: 439
Antigüedad: 18 años
Puntos: 1
Re: checkbox y ficheros de directorio

alguna idea?
  #3 (permalink)  
Antiguo 16/04/2007, 09:03
Avatar de gerson  
Fecha de Ingreso: febrero-2005
Ubicación: Lima
Mensajes: 481
Antigüedad: 19 años, 9 meses
Puntos: 4
Re: checkbox y ficheros de directorio

Hola estibaliz2006, haber si este codigo te sirve es muy basico pero funciona
Código PHP:
$path "dir";
if(isset(
$_POST['archivo'])){
    for(
$i=0;$i<sizeof($_POST['archivo']);$i++){
        
unlink($path '/' $_POST['archivo'][$i]);
    }
    
header('Location: test.php');
}
echo 
'<form name="frm" method="post" action="test.php">';
echo 
'<table cellspacing="0" cellspadding="0" border="1">';
echo 
'<tr>';
echo 
'<td colspan="2">para los marcados<input type="submit" value="Eliminar"></td>';
echo 
'</tr>';
echo 
'<tr>';
echo 
'<td>&nbsp;</td><td>Archivo</td>';
echo 
'</tr>';
if (
$handle opendir($path))  
    { 
    while (
false !== ($file readdir($handle))) { 
        if (
$file != "." && $file != "..") {     
            
$fName $file
            
$file $path.'/'.$file
            if(
is_file($file)){////si es un fichero  
                
echo '<tr>';
                echo 
'<td><input type="checkbox" name="archivo[]" value="'.$fName.'"></td>';
                echo 
"<td><a href='".$file."'>".$fName."</a></td>";
                echo 
'</tr>';
            }
        }
    }
}
echo 
'</table>';
echo 
'</form>'
Saludos
__________________

  #4 (permalink)  
Antiguo 16/04/2007, 12:03
Avatar de estibaliz2006  
Fecha de Ingreso: noviembre-2006
Mensajes: 439
Antigüedad: 18 años
Puntos: 1
Re: checkbox y ficheros de directorio

hola gerson. genial!!! he estado estudiando tu código y lo entiendo y lo mejor de todo...¡¡¡funciona!!!. pero (siempre hay un pero) me da un error:

te cuento:
en ese directorio en cuestión puede haber ficheros, pero también puede haber subdirectorios que a su vez contendrán ficheros. bien. pues cuando selecciono diferentes ficheros, no hay mayor problema: selecciono los ficheros y los elimino correctamente. pero el problema radica en que si pincho en cualquier subdirectorio, me lista los archivos correspondientes pero si hago click en ellos para eliminarlos me da el error del que os hablo porque el directorio que el cree en el que estamos es $path = "dir"; cuando en realidad esto en un subdirectorio $path = "dir/subdir";

cómo lo arreglamos?
  #5 (permalink)  
Antiguo 16/04/2007, 12:08
Avatar de estibaliz2006  
Fecha de Ingreso: noviembre-2006
Mensajes: 439
Antigüedad: 18 años
Puntos: 1
Re: checkbox y ficheros de directorio

ah, se me olvidaba. a la cuestión anterior hay que añadirle otra. resulta que si yo tengo a su vez esos archivos (su ruta) en una base de datos, cómo hago para eliminar esa ruta de la base de datos mediante el input (yo lo sé hacer cuando es con un enlace 'eliminar.php' con un id, pero con el input, cómo lo hago?
  #6 (permalink)  
Antiguo 16/04/2007, 12:30
Avatar de gerson  
Fecha de Ingreso: febrero-2005
Ubicación: Lima
Mensajes: 481
Antigüedad: 19 años, 9 meses
Puntos: 4
Re: checkbox y ficheros de directorio

Vamos por partes dijo Jack el destripador.

empezare por lo ultimo mencionado:

bueno se me acurre que puede ser asi.
Código PHP:
for($i=0;$i<sizeof($_POST['archivo']);$i++){
  
mysql_query("DELETE FROM tbl_files WHERE ruta = '" $path '/' $_POST['archivo'][$i] . "'");
  
unlink($path '/' $_POST['archivo'][$i]);

pues no creo q un registro tenga la misma ruta de img y si la tiene pues es que esta utilizando la misma imgen.

Ahora con respecto a lo anterior sobre los directorios, pues el error es por usar unlink(), para tal caso tienes q utilizar mrdir() pero existe un detalle con respecto a esta funcion q solo puedes eliminar directorios vacios.

Te recomiendo ver esos links ahi encontraras ejemplos.

cualquier duda pues solo avisame.

Saludos
__________________

  #7 (permalink)  
Antiguo 16/04/2007, 12:45
Avatar de estibaliz2006  
Fecha de Ingreso: noviembre-2006
Mensajes: 439
Antigüedad: 18 años
Puntos: 1
Re: checkbox y ficheros de directorio

no, pero yo no quiero eliminar el subdirectorio entero. lo que quiero es meterme en él y poder eliminar los archivos que hay en él como hago en el directorio principal.
me entendistes ahora?
  #8 (permalink)  
Antiguo 17/04/2007, 00:13
Avatar de estibaliz2006  
Fecha de Ingreso: noviembre-2006
Mensajes: 439
Antigüedad: 18 años
Puntos: 1
Re: checkbox y ficheros de directorio

no sé si me he explicado lo que quiero hacer... a veces me lío...
  #9 (permalink)  
Antiguo 17/04/2007, 05:56
Avatar de estibaliz2006  
Fecha de Ingreso: noviembre-2006
Mensajes: 439
Antigüedad: 18 años
Puntos: 1
Re: checkbox y ficheros de directorio

alguna ayuda?
  #10 (permalink)  
Antiguo 17/04/2007, 10:07
Avatar de estibaliz2006  
Fecha de Ingreso: noviembre-2006
Mensajes: 439
Antigüedad: 18 años
Puntos: 1
Re: checkbox y ficheros de directorio

alguna ayudita?
  #11 (permalink)  
Antiguo 17/04/2007, 11:02
Avatar de gerson  
Fecha de Ingreso: febrero-2005
Ubicación: Lima
Mensajes: 481
Antigüedad: 19 años, 9 meses
Puntos: 4
Re: checkbox y ficheros de directorio

Hola estibaliz2006 bueno hice esto aunque es muy basico pero funciona, espero te sirva
Código PHP:
if (isset($_GET['dir'])){
$path $_GET['dir'];
}else{
$path "dir";
}
if(isset(
$_POST['archivo'])){
    for(
$i=0;$i<sizeof($_POST['archivo']);$i++){
        
unlink($path '/' $_POST['archivo'][$i]);
    }
    
header('Location: test2.php?dir='.$path);
}
echo 
'<form name="frm" method="post" action="test2.php?dir='.$path.'">';
echo 
'<table cellspacing="0" cellspadding="0" border="1">';
echo 
'<tr>';
echo 
'<td colspan="2">para los marcados<input type="submit" value="Eliminar"></td>';
echo 
'</tr>';
echo 
'<tr>';
echo 
'<td>&nbsp;</td><td>Archivo</td>';
echo 
'</tr>';
if (
$handle opendir($path))  
    { 
    while (
false !== ($file readdir($handle))) { 
        if (
$file != "." && $file != "..") {     
            
$fName $file
            
$file $path.'/'.$file
            if(
is_file($file)){////si es un fichero  
                
echo '<tr>';
                echo 
'<td><input type="checkbox" name="archivo[]" value="'.$fName.'"></td>';
                echo 
"<td><a href='".$file."'>".$fName."</a></td>";
                echo 
'</tr>';
            }else{
                echo 
'<tr>';
                echo 
'<td>&nbsp;</td>';
                echo 
"<td><a href='test2.php?dir=".$file."'>".$fName."</a></td>";
                echo 
'</tr>';
            }
        }
    }
}
echo 
'</table>';
echo 
'</form>'
Saludos
__________________

  #12 (permalink)  
Antiguo 17/04/2007, 12:16
Avatar de estibaliz2006  
Fecha de Ingreso: noviembre-2006
Mensajes: 439
Antigüedad: 18 años
Puntos: 1
Re: checkbox y ficheros de directorio

genial gerson. había conseguido otro modo rompiéndome los sesos esta mañana por mi cuenta, pero creo que la tuya es una manera mucho más sencilla y ordenada.
ahora estoy en otro jaleo. siguiendo con el tema, lo que quiero obtener ahora es que, una vez el subdirectorio en cuestión esté vacío porque haya eliminado los archivos que en él haya, aparezca la opción de 'eliminar' el subdirectorio. pero no lo logro hacer. me he estado leyendo lo que me indicastes sobre los directorios, pero ahí estoy. se te ocurre algo?
  #13 (permalink)  
Antiguo 18/04/2007, 00:05
Avatar de estibaliz2006  
Fecha de Ingreso: noviembre-2006
Mensajes: 439
Antigüedad: 18 años
Puntos: 1
Re: checkbox y ficheros de directorio

se os ocurre algo?
  #14 (permalink)  
Antiguo 18/04/2007, 08:51
Avatar de gerson  
Fecha de Ingreso: febrero-2005
Ubicación: Lima
Mensajes: 481
Antigüedad: 19 años, 9 meses
Puntos: 4
Re: checkbox y ficheros de directorio

hola estibaliz2006 agrege lo que necesitabas haber si te funciona
Código PHP:
if (isset($_GET['dir'])){
$path $_GET['dir'];
}else{
$path "dir";
}
if(isset(
$_POST['archivo'])){
    for(
$i=0;$i<sizeof($_POST['archivo']);$i++){
        if (
is_file($path '/' $_POST['archivo'][$i])){
            
unlink($path '/' $_POST['archivo'][$i]);
        }else{
            
rmdir($path '/' $_POST['archivo'][$i]);
        }
    }
    
header('Location: test2.php?dir='.$path);
}
echo 
'<form name="frm" method="post" action="test2.php?dir='.$path.'">';
echo 
'<table cellspacing="0" cellspadding="0" border="1">';
echo 
'<tr>';
echo 
'<td colspan="2">para los marcados<input type="submit" value="Eliminar"></td>';
echo 
'</tr>';
echo 
'<tr>';
echo 
'<td>&nbsp;</td><td>Archivo</td>';
echo 
'</tr>';
if (
$handle opendir($path))  
    { 
    while (
false !== ($file readdir($handle))) { 
        if (
$file != "." && $file != "..") {     
            
$fName $file
            
$file $path.'/'.$file
            if(
is_file($file)){////si es un fichero  
                
echo '<tr>';
                echo 
'<td><input type="checkbox" name="archivo[]" value="'.$fName.'"></td>';
                echo 
"<td><a href='".$file."'>".$fName."</a></td>";
                echo 
'</tr>';
            }else{
                if(
$handle2 opendir($file)){
                    
$contador 0;
                    while (
false !== ($file2 readdir($handle2))){
                        
$contador++;
                    }
                }
                if (
$contador == 2){
                    
$check '<input type="checkbox" name="archivo[]" value="'.$fName.'">';
                }else{
                    
$check '&nbsp;';
                }
                echo 
'<tr>';
                echo 
'<td>'.$check.'</td>';
                echo 
"<td><a href='test2.php?dir=".$file."'>".$fName."</a></td>";
                echo 
'</tr>';
            }
        }
    }
}
echo 
'</table>';
echo 
'</form>'
Saludos.
__________________

  #15 (permalink)  
Antiguo 21/04/2007, 03:42
Avatar de estibaliz2006  
Fecha de Ingreso: noviembre-2006
Mensajes: 439
Antigüedad: 18 años
Puntos: 1
Re: checkbox y ficheros de directorio

gerson, estoy hechita un lío... y si lo que quiero es mover un fichero de un directorio a otro? cómo lo hago?
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:15.