Avatar billede mekaniker Nybegynder
15. juli 2004 - 13:30 Der er 19 kommentarer og
1 løsning

list gif og jpg filer fra en mappe + undermapper

Jeg skal bruge et script, som kan liste alle filnavne op på gif og jpg billederne i en mappe og tilhørende undermapper.

Jeg skal bruge det til at ændre rettighederne på en masse billeder som er uploadet med et script, og nu skal jeg flytte alle disse billeder, men jeg må ikke downloade dem via ftp, fordi jeg ikke har rettighederne til filen.

Jeg har prøvet chmod på en enkelt fil til 0777 og så kan jeg downloade dem via ftp.

Det vil bare tage en krig at gøre dette for fil i hver mappe, da der er rigtig mange filer og nested mapper

Jeg skal gerne bruge det ASAP, så der for de 200 point's
Avatar billede nyst Nybegynder
15. juli 2004 - 13:36 #1
Hej,
du kan bruge denne.
Du skal ændre 'din mappe' til mappen navn.
Du kan evt. slette koden der kan slette fotoerne.

<?php
$dir = $_SERVER["DOCUMENT_ROOT"] ."/din mappe/";

if(!isset($_GET['slet'])){
    if (is_dir($dir)) {
      if ($dh = opendir($dir)) {
          while (($file = readdir($dh)) !== false) {
                        if($file != "." && $file != ".." && substr($file, -4) != '.php') {
                            echo "<a href=\"" . $file ."\">$file</a>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;";
                        echo $file . "<a href=\"" . $_SERVER['PHP_SELF'] . "?slet=" . $file . "\">&nbsp;&nbsp;&#8594;&nbsp;delete</a><br />\n";
}
          }
          closedir($dh);
      }
    }
}else{
    if(file_exists($dir . $_GET['slet'])){
        unlink($dir . rawurldecode($_GET['slet']));
        echo "Filen: " . $_GET['slet'] . " blev slettet. <a href=\"" . $_SERVER['PHP_SELF'] . "\">Retur</a>";
    }else{
        echo "Filen: " . $_GET['slet'] . " findes ikke. <a href=\"" . $_SERVER['PHP_SELF'] . "\">Retur</a>";
    }
}
?>
Avatar billede jaw Nybegynder
15. juli 2004 - 13:39 #2
Det her vil vist også kunne:

<?php

function make_tree($path){ //where $path is your source dir.
    $handle=opendir($path);
    while($a=readdir($handle)){
        if(!preg_match('/^\./',$a)){
              $full_path="$path/$a";
              $list[]=$full_path; // REPLACE WITH OPTION IF NEEDED.
              if(is_dir($full_path)){
                  $recursive=make_tree($full_path);
                  for($n=0; $n<count($recursive); $n++){
                        $list[]=$recursive[$n];
                  }
              }
        }
    }
    closedir($handle);
    return $list;
}

$dir = ".";
$list = make_tree($dir);

$sidste_mappe = "";
foreach ($list as $value)
{
  if(substr($value, -4) == ".jpg" || substr($value, -4) == "gif") {
       
        echo "<a href='$value'>" . $value . "</a><br>";
    }
}



?>
Avatar billede jaw Nybegynder
15. juli 2004 - 13:46 #3
Det var sådan her jeg ville have haft det til at se ud, og nu funker det :)

<?php

function make_tree($path){ //where $path is your source dir.
  $handle=opendir($path);
  while($a=readdir($handle)){
    if(!preg_match('/^\./',$a)){
      $full_path="$path/$a";
      $list[]=$full_path; // REPLACE WITH OPTION IF NEEDED.
      if(is_dir($full_path)){
        $recursive=make_tree($full_path);
        for($n=0; $n<count($recursive); $n++){
          $list[]=$recursive[$n];
        }
      }
    }
  }
  closedir($handle);
  return $list;
}

$dir = ".";
$list = make_tree($dir);

foreach ($list as $value) {
   
  $path_parts = pathinfo($value);
 
  if($path_parts['extension'] == ".jpg" || $path_parts['extension'] == "gif") {
    echo "<a href='$value'>" . $value . "</a><br>";
  }
}
?>
Avatar billede nyst Nybegynder
15. juli 2004 - 13:50 #4
hej jaw,

din første tager ikke små giffer med
og din næste tager kun giffer

*S*
Avatar billede jaw Nybegynder
15. juli 2004 - 13:52 #5
Ahva? Tilgengæld tager din så alt der ikke er .php?! :)
Avatar billede nyst Nybegynder
15. juli 2004 - 13:53 #6
Den skal så se sådan ud

<?php

function make_tree($path){ //where $path is your source dir.
  $handle=opendir($path);
  while($a=readdir($handle)){
    if(!preg_match('/^\./',$a)){
      $full_path="$path/$a";
      $list[]=$full_path; // REPLACE WITH OPTION IF NEEDED.
      if(is_dir($full_path)){
        $recursive=make_tree($full_path);
        for($n=0; $n<count($recursive); $n++){
          $list[]=$recursive[$n];
        }
      }
    }
  }
  closedir($handle);
  return $list;
}

$dir = ".";
$list = make_tree($dir);

foreach ($list as $value) {
   
  $path_parts = pathinfo($value);
 
  if($path_parts['extension'] == "jpg" || $path_parts['extension'] == "gif") {
    echo "<a href='$value'>" . $value . "</a><br>";
  }
}
?>
Avatar billede jaw Nybegynder
15. juli 2004 - 13:53 #7
Nå ja, selvfølgelig :) Der skal lige fjernes . <punktum> ved jpg i linien:

if($path_parts['extension'] == ".jpg" || $path_parts['extension'] == "gif") {
Avatar billede nyst Nybegynder
15. juli 2004 - 13:54 #8
ja min lister alt i din mappe du sætter den til
Avatar billede jaw Nybegynder
15. juli 2004 - 13:57 #9
Ja, ja jeg kan jo selv rette...
Avatar billede nyst Nybegynder
15. juli 2004 - 13:59 #10
*G*
Avatar billede nyst Nybegynder
15. juli 2004 - 14:00 #11
jaw
har du fortand på at lave en fil der indeholder alle fotos i en session, som så kaldes fra en anden side med phplink, så man ikke kan se det rigtige fotonavn men kun id navnet??
Avatar billede jaw Nybegynder
15. juli 2004 - 14:10 #12
Tjah, hvis du:

$_SESSION['filename'] = $row['filename'];
echo "<a href='hshs.php?filename=".strip_tags(SID)."'>tekst</a>";

Så få du SESSION-id'en
Avatar billede nyst Nybegynder
15. juli 2004 - 14:24 #13
Den er jeg skisme ikke med på, men jeg stillede måske det lidt forkert.
Jeg ridser lige op:

arkivfil:

<?php
session_start();

$_SESSION['001'] = "image/foto001.jpg";
$_SESSION['002'] = "image/foto002.jpg";
$_SESSION['003'] = "image/foto003.jpg";

?>

---------------------------------------

linkfil:

<?php session_start();  ?>

<html><head>

<?php

<a href=arkivfil.php?001"><img src=ikon.gif"></a>
<a href=arkivfil.php?003"><img src=ikon.gif"></a>

?>

---------------------------------------------

men koderne er ikke rigtigte

*S*
Avatar billede jaw Nybegynder
15. juli 2004 - 14:27 #14
Nej, det var nok også mig der var for hurtig... Sry.

Er ved at pakke, så har desværre ikke tid til at bikse med det lige nu, men prøv Google, der kan du nok finde noget :(
Avatar billede nyst Nybegynder
15. juli 2004 - 14:36 #15
Google???
Avatar billede jaw Nybegynder
15. juli 2004 - 14:37 #16
Ja, søg efter "use of session ID" + php eller noget i den stil... Eller opret et spørgsmål...
Avatar billede jaw Nybegynder
15. juli 2004 - 17:38 #17
Nå, det hastede jo åbenbart ikke så meget alligevel... Men jeg vil betragte mit ovenstående foreslag som et svar, så her er et :)
Avatar billede mekaniker Nybegynder
16. juli 2004 - 06:27 #18
jaw

Jeg brugte dit første forslag og rettede det lidt til, men det virkede helt perfekt.
Sorry jeg ikke fik meldt tilbage igår, men jeg var lidt presset..

Super tak for hjælpen...
Avatar billede jaw Nybegynder
16. juli 2004 - 08:00 #19
Godmorgen...
Det er bare helt i orden :)

God sommer til Jer begge :)
Avatar billede nyst Nybegynder
16. juli 2004 - 11:16 #20
ja, hvis man skriver ASAP er det vel ASAP !!!
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester