codigo uno, muestra los archivos y carpetas para poder seleccionarlas.
la estructura es asi: dentro de la carpeta albums, hay una carpeta con el nombre del album, el cual contiene 2 carpetas una "grande" y otra "peq" para la foto en grande y el thumbnail, ademas dentro de la carpeta del album hay 3 archivos, fotos.xml, fotos_v6.fla y fotos_v6.swf para mostrar el album.
cualquier consulta la respondere lo mas pronto posible, espero me puedan ayudar y que tambien sirva a alguien que este buscando algo parecido.
los resultados mas comunes obtenidos son:
que la carpeta del album contiene archivos, que no tengo permisos para eliminar "grande" y "peq" y por ultimo que logro borrar una foto, el xml, el fla y el swf pero despues no puedo borrar mas fotos.
Código PHP:
<html>
<head><title></title></head>
<script language="javascript" type="text/javascript">/*para seleccionar todos los checkbox de los archivos incluidos en la carpeta que se borrará*/
function subfiles(id){
confirmar = confirm("Si elimina esta carpeta, todas las fotos contenidas en la misma serán eliminadas, ¿desea continuar?");
if(confirmar){
/*var arrLen = document.getElementsByTagName('div');
alert(arrLen);*/
}
else{
}
}
function filecheck(id){
}
</script>
<body>
Esta sección solo sirve para eliminar los archivos, si desea cambiar el nombre o moverlo a otra carpeta, debe borrarlo y subirlo con el nombre y/o en la carpeta deseada.<p>
Para eliminar un archivo o una carpeta debe seleccionarla en el cuadro que se encuentra a la derecha de cada item, una vez seleccionado todos los items a eliminar; presiona el botón eliminar para finalizar la acción.<p>
<form name="fileadmin" id="fileadmin" action="confirm.php" method="post">
<input type="submit" value="Eliminar Selección" id="del" name="del"/><!--boton para eliminar-->
<?php
// Your start directory
getDirectory('../albums');//aqui estan las carpetas de albums de fotos
function getDirectory( $path = '.', $level = 0 )
{
// ignorar estos resultados como directorios.
$ignore = array( '.', '..' );
// abrir el directorio a manipular $dh
$dh = @opendir( $path );
$a=0;
// recorrer el directorio
while( false !== ( $file = readdir( $dh ) ) )
{
// este archivo no será ignorado
if( !in_array( $file, $ignore ) )
{
//
$spaces = str_repeat( ' ', ( $level * 5 ) );
// solo mostrar directorios
if(is_dir( "$path/$file" ) )
{
// Re-call this same function but on a new directory.
// this is what makes function recursive.
if($file != "_notes")//este directorio lo crea solo dreamweaver, por eso se omite
$updir = $file;
echo "<li><img width='50' height='50' src='../../Resources/Icons/My-Documents-icon.png' /><a href=\"../albums/".$file."/\">".$file."</a><input type='checkbox' id=\"".$file."\" name=\"".$file."\" onclick='subfiles(this.id)' /><br><br><div id=\"div".$file."\">";//genera el icono de la carpeta y el checkbox para seleccionar eliminarla
if ($handle = opendir('../albums/'.$file.'/grande/')) {//para listar archivos
while (false !== ($file = readdir($handle))) {//recorre el album y la carpeta grande para mostrar las fotos
{
if(end(explode(".", $file))== 'jpg'){
$extension = pathinfo($file, PATHINFO_EXTENSION);
$noext = basename($file, '.'.$extension);
echo "<img src=\"../albums/".$updir."/grande/".$file."\" width=\"70\" height=\"50\">".$file."<input type='checkbox' id=\"file".$updir."\" name=\"".$noext."\" onclick='filechecked(this.id)' /><br>";se genera un incono pequeño de la foto y el checkbox para seleccionarla
}
}
}
echo "</div><br>";
closedir($handle);
}//aqui termina para listar archivos
}
}
$a= $a +1;
}
// Close the directory handle
closedir( $dh );
}
?>
</form>
</body>
confirm.php
Código PHP:
<?php
//llenar arreglo con lista de carpetas y archivos
//comprobar si seleccionó archivo o carpeta
//si seleccionó carpeta utilizar rmdir
//si seleccionó archivo utilizar unlink
//listo
$handle2 = opendir('../../PicGalery/albums/');//call the folder
while (($file2 = readdir($handle2))) {//bucle to call folders
if ($file2 != '.' && $file2 != '..' && $file2 != '_notes'){
$afiles = opendir('../../PicGalery/albums/'.$file2.'/grande/');//abre directorio con fotos grandes
$bfiles = opendir('../../PicGalery/albums/'.$file2.'/peq/');//abre directorio con thumbnails
while (($file3 = readdir($afiles))) {//bucle to call files
if ($file3 != '.' && $file3 != '..' && $file3 != '_notes'){
$extension = pathinfo($file3, PATHINFO_EXTENSION);//llama archivo y le quita la extension para poder llamar al input de nombre "archivo(sin extension"
$noext = basename($file3, '.'.$extension);
if (isset($_POST[$noext])){//revisa que el checkbox del mismo nombre del file este selected
unlink('../../PicGalery/albums/'.$file2.'/grande/'.$file3);
}
}
}
while(($file4 = readdir($bfiles))){
if ($file4 != '.' && $file4 != '..' && $file4 != '_notes'){
$extension = pathinfo($file4, PATHINFO_EXTENSION);
$noext = basename($file4, '.'.$extension);
if(isset($_POST[$noext])){
unlink('../../PicGalery/albums/'.$file2.'/peq/'.$file4);
}
}
}
}
if(isset($_POST[$file2])){
unlink('../../PicGalery/albums/'.$file2.'/fotos.xml');
unlink('../../PicGalery/albums/'.$file2.'/fotos_v6.fla');
unlink('../../PicGalery/albums/'.$file2.'/fotos_v6.swf');
rmdir('../../PicGalery/albums/'.$file2.'/grande/');
rmdir('../../PicGalery/albums/'.$file2.'/peq/');
//rmdir('../../PicGalery/albums/'.$file2.'/_notes/');
rmdir('../../PicGalery/albums/'.$file2);}
}
closedir($handle2);closedir($afiles);closedir($bfiles); //close directory
/*$handle2 = opendir('../../PicGalery/albums/');//call the folder
$a=0;
$b=0;
while (($file2 = readdir($handle2))) {//bucle to call files
if ($file2 != '.' && $file2 != '..' && $file2 != '_notes'){
$directorio[$a] = $file2; // putting file names in an array called directorio
$a = $a + 1;
$afiles = opendir('../../PicGalery/albums/'.$directorio[$a-1].'/grande/');
while (($file3 = readdir($afiles))) {//bucle to call files
if ($file3 != '.' && $file3 != '..' && $file2 != '_notes'){
$archivo[$directorio[$a-1],$b] = $file3; // putting file names in an array called antiguos
$b = $b + 1;
}
}
}
}
for ($z = 0 ; $z <= $a-1; $z++){
for ($x = 0; $x <= $b-1; $x++){
echo("ya llego aqui");
if (isset($_POST['fold'.$directorio[$z]])) { // borrar directorio, además borrará archivos
unlink('../../PicGalery/albums/'.$directorio[$z].'/grande/'.$archivo[$directorio[$z],$x]);
unlink('../../PicGalery/albums/'.$directorio[$z].'/peq/'.$archivo[$directorio[$z],$x]);
rmdir('../../PicGalery/albums/'.$directorio[$z].'/grande/');
rmdir('../../PicGalery/albums/'.$directorio[$z].'/peq/');
unlink('../../PicGalery/albums/'.$directorio[$z].'/fotos.xml');
unlink('../../PicGalery/albums/'.$directorio[$z].'/fotos_v6.fla');
unlink('../../PicGalery/albums/'.$directorio[$z].'/fotos_v6.swf');
}
if (isset($_POST['fold'.$directorio[$z]])) { // borrar directorio, además borrará archivos
rmdir('../../PicGalery/albums/'.$directorio[$z].'/');
}
}
if (isset($_POST['file'.$file[$z]])){ //borrará archivos seleccionados
unlink($file);
unlink($directorio[$z].'/peq/'.$file[$x]);
}
}
closedir($handle2); //close directory*/
?>
un detalle, me acabo de dar cuenta que no elimina fotos con espacios en el nombre.
http://www.radiosomosamigos.cl/PicGa...Admin/form.php
Encontre el problema, era justamente eso, no elimina directorios por que aparecen con archivos, ya que no elimina las fotos que tienen espacio en el nombre.
De todas maneras si les gusto el administrador el codigo va a quedar ahi para que lo vean. ahora me tendre que pelear con javascript. gracias de todas maneras