Avatar billede crapmaster Nybegynder
23. juni 2003 - 11:56 Der er 45 kommentarer og
1 løsning

Billede i mappe til link

Hej alle....

Hvordan laver man en php side, Den skal kigge i en mappe ( gall ) hvor der er nogle billedefiler i der bliver uploadet af brugerne, Det jeg gerne vil ha er en php side hvor den skriver alle billederne ud som links når jeg så sletter den i mappen skal de oxo forsvinde på linksiden.....Håber i forstå mig
Avatar billede googolplex Novice
23. juni 2003 - 12:01 #1
function list_filer($bibliotek) {

    if ($bib = @opendir($bibliotek)) {
        while (false !== ($fil = readdir($bib))) {
            if ($fil != "." && $fil != ".." && !ereg("^\..+", $fil)) {
                $fil_liste[] = "<a href=\"$bibliotek/$fil\">$fil</a>";
            }
        }   
   
        closedir($bib);
       
        if (is_array($fil_liste)) {
            $liste = "<li>" . join("</li><li>", $fil_liste) . "</li>";
        } else {
            $liste = "<li>Ingen filer p&aring; lager</li>";
        }
       
        $fil_lager = "<h2>Filer p&aring; lager:</h2><ul>" . $liste . "</ul>";

        return $fil_lager;
         
    } else {
        die("Kunne ikke &aring;bne biblioteket: " . $bibliotek);
    }
}
Avatar billede googolplex Novice
23. juni 2003 - 12:01 #2
Er det sådan noget du leder efter ?
Avatar billede Slettet bruger
23. juni 2003 - 12:03 #3
JacobA og Jeg, er igang med en laaang smøre over samme problem, måske kan den hjælpe:
http://www.eksperten.dk/spm/367726
Avatar billede crapmaster Nybegynder
23. juni 2003 - 12:06 #4
<<<<googolplex

Jo det er lige det jeg søger, men den skal ikke vis billedet....Kun linket
Avatar billede googolplex Novice
23. juni 2003 - 12:06 #5
Min er snuppet fra webcafeen, du kan se den i funktion her (samt et upload):

http://www.webcafe.dk/artikler/php/upload/wc_upload.php
Avatar billede googolplex Novice
23. juni 2003 - 12:08 #6
Hvilket billede, den viser kun linket :)
Avatar billede googolplex Novice
23. juni 2003 - 12:13 #7
Avatar billede crapmaster Nybegynder
23. juni 2003 - 12:18 #8
Avatar billede crapmaster Nybegynder
23. juni 2003 - 12:20 #9
Men der er bare en tom kasse over billede
Avatar billede googolplex Novice
23. juni 2003 - 12:28 #10
Ja det har du da ret i, det havde jeg ikke lagt mærke til, hmm :)
Avatar billede googolplex Novice
23. juni 2003 - 12:29 #11
Sådan, hvad skete der ?
Avatar billede crapmaster Nybegynder
23. juni 2003 - 12:30 #12
Når jeg vil trykke på linket viser den at billedet ligger i roden, men det gør det ikke , det ligger jo i mappen ( Gall )
Avatar billede crapmaster Nybegynder
23. juni 2003 - 12:31 #13
Min kode lige nu:

<?
    // Copyright Infinito.dk - Searches for all images in a folder, and list/displays thumbnails! :)
    // As standard, it shows jpg, gif, png and bmp files...
   
    // Text and stuff..
    echo "<b>Images in this folder:</b><br>";
   
    // First we open the directory, this file lays in..
    $dir = opendir("./gall");
    $files = readdir($dir);
   
    // Display name and thumbnail
    while ($files = readdir($dir)){
        if (ereg(".jpg", $files) || ereg(".gif", $files) || ereg(".png", $files) || ereg(".bmp", $files)) {
            echo "<a href=\"$files\">";
            echo "$files</a><br><br>";
           
            // Counts how many pictures, which have been found
            $total = $total+1;
        }
    }
   
    // Close the dir
    closedir($dir);   
?>
Avatar billede googolplex Novice
23. juni 2003 - 12:42 #14
Prøv at smid $dir ind i dit <a href>, det magler vidst.
Avatar billede googolplex Novice
23. juni 2003 - 12:43 #15
echo "<a href=\"$dir/$files\">";
Avatar billede crapmaster Nybegynder
23. juni 2003 - 12:45 #16
Sådan her:

<?
    // Copyright Infinito.dk - Searches for all images in a folder, and list/displays thumbnails! :)
    // As standard, it shows jpg, gif, png and bmp files...
   
    // Text and stuff..
    echo "<b>Billeder i Uploadmappen:</b><br>";
   
    // First we open the directory, this file lays in..
    $dir = opendir("gall");
    $files = readdir($dir);
   
    // Display name and thumbnail
    while ($files = readdir($dir)){
        if (ereg(".jpg", $files) || ereg(".gif", $files) || ereg(".png", $files) || ereg(".bmp", $files)) {
            echo "<a href=\"$dir/$files\">";
            echo "$files</a><br>";
                       

            // Counts how many pictures, which have been found
            $total = $total+1;
        }
    }
   
    // Close the dir
    closedir($dir);   
?>
Avatar billede googolplex Novice
23. juni 2003 - 12:53 #17
Kan du få det til at funke ?
Avatar billede crapmaster Nybegynder
23. juni 2003 - 12:56 #18
Nej http://nokia3510i.1go.dk/gif.php

nu ser det helt #(¤/#) ud
Avatar billede googolplex Novice
23. juni 2003 - 13:04 #19
Mit virker her:

http://www.ladefoged-roenne.dk/index.php?side=listfiler

Koden (næsten samme som før):

function list_filer($bibliotek) {

    if ($bib = @opendir($_SERVER["DOCUMENT_ROOT"] . $bibliotek)) { // Fjern evt. $_SERVER["DOCUMENT_ROOT"] */
        while (false !== ($fil = readdir($bib))) {
            if ($fil != "." && $fil != ".." && !ereg("^\..+", $fil)) {
                $fil_liste[] = "<a href=\"$bibliotek/$fil\">$fil</a>";
            }
        }   
   
        closedir($bib);
       
        if (is_array($fil_liste)) {
            $liste = "<li>" . join("</li><li>", $fil_liste) . "</li>";
        } else {
            $liste = "<li>Ingen filer p&aring; lager</li>";
        }
       
        $fil_lager = "<h2>Filer p&aring; lager:</h2><ul>" . $liste . "</ul>";

        return $fil_lager;
         
    } else {
        die("Kunne ikke &aring;bne biblioteket: " . $bibliotek);
    }
}
Avatar billede crapmaster Nybegynder
23. juni 2003 - 13:11 #20
Vis nu min mappe hedder ( gall ) hvor vil du sætte den ind henne ?????

Jeg er lidt dum :-)
Avatar billede googolplex Novice
23. juni 2003 - 13:16 #21
I dit tilfælde:

<?php

/* Funktionen */

function list_filer($bibliotek) {

    if ($bib = @opendir($_SERVER["DOCUMENT_ROOT"] . $bibliotek)) { // Fjern evt. $_SERVER["DOCUMENT_ROOT"] */
        while (false !== ($fil = readdir($bib))) {
            if ($fil != "." && $fil != ".." && !ereg("^\..+", $fil)) {
                $fil_liste[] = "<a href=\"$bibliotek/$fil\">$fil</a>";
            }
        }   
   
        closedir($bib);
       
        if (is_array($fil_liste)) {
            $liste = "<li>" . join("</li><li>", $fil_liste) . "</li>";
        } else {
            $liste = "<li>Ingen filer p&aring; lager</li>";
        }
       
        $fil_lager = "<h2>Filer p&aring; lager:</h2><ul>" . $liste . "</ul>";

        return $fil_lager;
         
    } else {
        die("Kunne ikke &aring;bne biblioteket: " . $bibliotek);
    }
}

/* Resten */

$bibliotek = "/gall";

echo list_filer($bibliotek);

?>

MEN, det er ikke sikkert at det virker i ovenstående form, da det ikke er dit eget domæne og derfor kan stier ofte drille lidt (det er i hvert fald min erfaring).´

Fjern evt. følgende: $_SERVER["DOCUMENT_ROOT"] .
Avatar billede googolplex Novice
23. juni 2003 - 13:17 #22
Du har vidst glemt <?php ?> har du ikke ? Så ligner det volapyk :)
Avatar billede crapmaster Nybegynder
23. juni 2003 - 13:21 #23
Nej men nu skriver den at den ikke kan oppen gall mappen

Der ligger en phpinfo.php på siden vis den kan hjælpe dig...
http://nokia3510i.1go.dk/phpinfo.php
Avatar billede googolplex Novice
23. juni 2003 - 13:44 #24
på et tidspunkt havde du noget det 'næsten' virkede, borset fra linket til billedet, kan du ikke lige skrive koden på det ?
Avatar billede crapmaster Nybegynder
23. juni 2003 - 13:46 #25
Her er koden som den ser ud lige nu PT

<?
    // Copyright Infinito.dk - Searches for all images in a folder, and list/displays thumbnails! :)
    // As standard, it shows jpg, gif, png and bmp files...
   
    // Text and stuff..
    echo "<b>Billeder i Uploadmappen:</b><br>";
   
    // First we open the directory, this file lays in..
    $dir = opendir("gall");
    $files = readdir($dir);
   
    // Display name and thumbnail
    while ($files = readdir($dir)){
        if (ereg(".jpg", $files) || ereg(".gif", $files) || ereg(".png", $files) || ereg(".bmp", $files)) {
            echo "<a href=\"$dir/$files\">";
            echo "$files</a><br>";
                       

            // Counts how many pictures, which have been found
            $total = $total+1;
        }
    }
   
    // Close the dir
    closedir($dir);   
?>
Avatar billede googolplex Novice
23. juni 2003 - 13:56 #26
Ok, jeg opretter mig lige på 1go.dk og prøver din kode :)
Avatar billede crapmaster Nybegynder
23. juni 2003 - 13:57 #27
ok
Avatar billede googolplex Novice
23. juni 2003 - 14:28 #28
Ok, jeg kan ikke få det til at virke hos 1go.dk, men intet problem andre steder.

Sorry, men det er ikke første gang jeg har haft problemer på gratis webhoteller :(

Hvis du skal bruge det til noget seriøst (eller semiseriøst), så forestlår jeg at du opretter et webhotel hos B-one.nu eller web10.dk :)

Jeg er dog overbevist om, at problemet bare er en sti der skal rettes, kan bare ikke lige greje det :P
Avatar billede crapmaster Nybegynder
23. juni 2003 - 17:47 #29
Når ok, jeg har droppet den kode da vi ikke er kommet vider med, Jeg har kaste mig over denne kode, Vis virker findt. MEN når jeg oploader en fil og trykker på upload hopper den ud i en ( Siden kan ikke vises ) side. men filen bliver uploadet når jeg reloader side....? hvorfor gør den det....

>>>>>>>>>>>>>>>>>>KODEN<<<<<<<<<<<<<<<<<<<<<<<<<

<?php

/**
* Simpelt script der tager imod et filupload og lister
* filer i upload-biblioteket.
*
* Scriptet er et eksempel til en artikel paa WebCafe.dk:
*
*    http://www.webcafe.dk/artikler/php/upload/
*/


/**
* Hvor skal filerne uploades til?
* Husk, at webserveren skal kunne skrive til dette bibliotek
*/
$konfiguration["upload_bibliotek"] = "upload";

/* Hvor mange kilobytes maa filerne fylde per styk? */
$konfiguration["max_stoerrelse"] = "30";


/**
* Checker PHP-version
*/
list($major, $minor, $rev) = explode(".", phpversion());
if($major < 4) {
  die("Jeg kan kun arbejde med PHP 4.0.0 eller derover");
}


/**
* Udligner forskellene mellem 4.1.x og 4.0.x
* Bemaerk, at disse ikke er "superglobals"
*/
if($minor < 1) {
  $_FILES = $HTTP_POST_FILES;
  $_POST = $HTTP_POST_VARS;
  $_SERVER = $HTTP_SERVER_VARS;
}


if($_FILES["upfil"]["size"] > 0) {

  /**
  * Hvis der er en fil, saa uploader vi den.
  *
  * Foerst slaar vi lige fast, hvor filen skal flyttes fra og til.
  */

  $fra = $_FILES["upfil"]["tmp_name"];
  $til = $konfiguration["upload_bibliotek"] . "/" . $_FILES["upfil"]["name"];

  /**
  *  Checker lige om filen er for stor til at vi vil acceptere den.
  *  Vi bruger ceil() i stedet for round(), saa vi ikke faar den skoere
  *  situation, at fejlmeldingen siger, at filen er for stor, men angiver
  *  samme stoerrelse for filen og den oevre graense.
  */
  $fil_stoerrelse = filesize($fra)/1024;
  if($fil_stoerrelse > $konfiguration["max_stoerrelse"]) {
      die("Desv&aelig;rre - filen er for stor. Jeg accepterer kun " .
          $konfiguration["max_stoerrelse"] . "kb, og din fil fylder " .
          ceil($fil_stoerrelse) . "kb");
  }
  if(function_exists("move_uploaded_file")) {
    move_uploaded_file($fra, $til);
  } else {
    copy($fra, $til);
  }

  header("Location: " . $_SERVER["upload"]);
  exit;

} else {

  /**
  * Intet tegn paa upload, saa vi viser bare listen over filer
  * og HTML-formularen til nye uploads.
  */
  $indhold = listFiler($konfiguration["upload_bibliotek"]);
  $indhold .= bygFormular($_SERVER["PHP_SELF"]);
  $output = bygSide("hej", $indhold);

}


/**
* Skriver ud til browseren
*/
echo $output;
exit;



/**************************************************\
**              Hjaelpefunktioner              **
\**************************************************/

function bygSide($titel, $indhold) {

  /**
  * Pakker indholdet ind i lidt formalia
  */
  return '<html>
            <head><title>$titel</title></head>
            <body bgcolor="#ffffff">
              <div align="right"><a href="./">Tilbage til artiklen</a></div>
              ' . $indhold . '</body>
          </html>
        ';

}

function bygFormular($action) {

  $formular = '<form action="' . $action . '" method="post" enctype="multipart/form-data">
                <table border="1" cellpadding="5" cellspacing="0">
                  <tr>
                    <td align="right" bgcolor="#999999"><b>Fil til upload:</b></td>
                    <td bgcolor="#cccccc"><input type="file" name="upfil" /></td>
                  </tr>
                  <tr>
                    <td colspan="2" align="middle" bgcolor="#dddddd"><input type="submit" value="upload" /></td>
                  </tr>
                </table>
              </form>
              ';

  return "<h2>Upload fil:</h2>" . $formular;

}

function listFiler($bibliotek) {

  if($bib = @opendir($bibliotek)) {
    /**
    * Denne syntaks er forklaret i PHP-manualen:
    * http://www.php.net/manual/en/function.readdir.php
    */
    while (false !== ($fil = readdir($bib))) {
      if($fil != "." && $fil != ".." && !ereg("^\..+", $fil)) {
          $fil_liste[] = "<a href=\"$bibliotek/$fil\">$fil</a>";
      }
    }
    closedir($bib);

    if(is_array($fil_liste)) {
      $liste = "<li>" . join("</li><li>", $fil_liste) . "</li>";
    } else {
      $liste = "<li>Ingen filer p&aring; lager</li>";
    }
    return "<h2>Filer p&aring; lager:</h2><ul>" . $liste . "</ul>";
  } else {
    die("Kunne ikke &aring;bne biblioteket: " . $bibliotek);
  }

}

?>
Avatar billede googolplex Novice
23. juni 2003 - 18:34 #30
Hold kæft hvor plat. Da jeg kiggede op din kode, som er 100% identisk med den jeg gav dig, fandt jeg fejlen, nu virker det fint :P

Angående upload-funktionen, så kigger jeg lige på det. Virker, det gør den, for jeg bruger den selv :P
Avatar billede crapmaster Nybegynder
23. juni 2003 - 18:35 #31
ok jeg sider her lige nu så jeg svare med det samme....
Avatar billede googolplex Novice
23. juni 2003 - 18:39 #32
Kan jeg ikke lige se den kode du har lagt op, er det præcis der står overnover ?
Avatar billede crapmaster Nybegynder
23. juni 2003 - 18:39 #33
Yepper
Avatar billede googolplex Novice
23. juni 2003 - 18:44 #34
Kan du ikke lige skrive NØJAGTIGT den fil du har lagt ud, for en sikkerheds skyld, altså præcis sådan som din fil ser ud, intet andet, ingen kommentarer ol.
Avatar billede crapmaster Nybegynder
23. juni 2003 - 18:45 #35
<?php

/**
* Simpelt script der tager imod et filupload og lister
* filer i upload-biblioteket.
*
* Scriptet er et eksempel til en artikel paa WebCafe.dk:
*
*    http://www.webcafe.dk/artikler/php/upload/
*/


/**
* Hvor skal filerne uploades til?
* Husk, at webserveren skal kunne skrive til dette bibliotek
*/
$konfiguration["upload_bibliotek"] = "upload";

/* Hvor mange kilobytes maa filerne fylde per styk? */
$konfiguration["max_stoerrelse"] = "30";


/**
* Checker PHP-version
*/
list($major, $minor, $rev) = explode(".", phpversion());
if($major < 4) {
  die("Jeg kan kun arbejde med PHP 4.0.0 eller derover");
}


/**
* Udligner forskellene mellem 4.1.x og 4.0.x
* Bemaerk, at disse ikke er "superglobals"
*/
if($minor < 1) {
  $_FILES = $HTTP_POST_FILES;
  $_POST = $HTTP_POST_VARS;
  $_SERVER = $HTTP_SERVER_VARS;
}


if($_FILES["upfil"]["size"] > 0) {

  /**
  * Hvis der er en fil, saa uploader vi den.
  *
  * Foerst slaar vi lige fast, hvor filen skal flyttes fra og til.
  */

  $fra = $_FILES["upfil"]["tmp_name"];
  $til = $konfiguration["upload_bibliotek"] . "/" . $_FILES["upfil"]["name"];

  /**
  *  Checker lige om filen er for stor til at vi vil acceptere den.
  *  Vi bruger ceil() i stedet for round(), saa vi ikke faar den skoere
  *  situation, at fejlmeldingen siger, at filen er for stor, men angiver
  *  samme stoerrelse for filen og den oevre graense.
  */
  $fil_stoerrelse = filesize($fra)/1024;
  if($fil_stoerrelse > $konfiguration["max_stoerrelse"]) {
      die("Desv&aelig;rre - filen er for stor. Jeg accepterer kun " .
          $konfiguration["max_stoerrelse"] . "kb, og din fil fylder " .
          ceil($fil_stoerrelse) . "kb");
  }
  if(function_exists("move_uploaded_file")) {
    move_uploaded_file($fra, $til);
  } else {
    copy($fra, $til);
  }

  header("Location: " . $_SERVER["upload"]);
  exit;

} else {

  /**
  * Intet tegn paa upload, saa vi viser bare listen over filer
  * og HTML-formularen til nye uploads.
  */
  $indhold = listFiler($konfiguration["upload_bibliotek"]);
  $indhold .= bygFormular($_SERVER["PHP_SELF"]);
  $output = bygSide("hej", $indhold);

}


/**
* Skriver ud til browseren
*/
echo $output;
exit;



/**************************************************\
**              Hjaelpefunktioner              **
\**************************************************/

function bygSide($titel, $indhold) {

  /**
  * Pakker indholdet ind i lidt formalia
  */
  return '<html>
            <head><title>$titel</title></head>
            <body bgcolor="#ffffff">
              <div align="right"><a href="./">Tilbage til artiklen</a></div>
              ' . $indhold . '</body>
          </html>
        ';

}

function bygFormular($action) {

  $formular = '<form action="' . $action . '" method="post" enctype="multipart/form-data">
                <table border="1" cellpadding="5" cellspacing="0">
                  <tr>
                    <td align="right" bgcolor="#999999"><b>Fil til upload:</b></td>
                    <td bgcolor="#cccccc"><input type="file" name="upfil" /></td>
                  </tr>
                  <tr>
                    <td colspan="2" align="middle" bgcolor="#dddddd"><input type="submit" value="upload" /></td>
                  </tr>
                </table>
              </form>
              ';

  return "<h2>Upload fil:</h2>" . $formular;

}

function listFiler($bibliotek) {

  if($bib = @opendir($bibliotek)) {
    /**
    * Denne syntaks er forklaret i PHP-manualen:
    * http://www.php.net/manual/en/function.readdir.php
    */
    while (false !== ($fil = readdir($bib))) {
      if($fil != "." && $fil != ".." && !ereg("^\..+", $fil)) {
          $fil_liste[] = "<a href=\"$bibliotek/$fil\">$fil</a>";
      }
    }
    closedir($bib);

    if(is_array($fil_liste)) {
      $liste = "<li>" . join("</li><li>", $fil_liste) . "</li>";
    } else {
      $liste = "<li>Ingen filer p&aring; lager</li>";
    }
    return "<h2>Filer p&aring; lager:</h2><ul>" . $liste . "</ul>";
  } else {
    die("Kunne ikke &aring;bne biblioteket: " . $bibliotek);
  }

}

?>
Avatar billede crapmaster Nybegynder
23. juni 2003 - 18:46 #36
Er det sådan du vil ha det..
Avatar billede googolplex Novice
23. juni 2003 - 18:53 #37
Det er altså besynderligt, nu har jeg lavet en identisk fil (har endda kaldt den det samme), men prøv at upload:

http://googolplex.1go.dk/gif.php

Hvorfor kan din uploade når min ikke kan ? Højst besynderligt...

Nå, men jeg tror fejlen ligger i linier:

$indhold .= bygFormular($_SERVER["PHP_SELF"]);

Men det er lidt svært at gennemskue, når man ikke kan eksperimentere :(
Avatar billede crapmaster Nybegynder
23. juni 2003 - 18:55 #38
Da dette kun er et sted jeg tester kan du da godt få FTP add og passwordet
Avatar billede googolplex Novice
23. juni 2003 - 18:57 #39
jjr@adslhome.dk :)
Avatar billede googolplex Novice
23. juni 2003 - 18:58 #40
Har du ændret noget på dit websted, rettigheder osv ?

Jeg må indrømme at jeg undres rimelig meget over hvordan to identiske koder kan give to forskellige resultater...
Avatar billede crapmaster Nybegynder
23. juni 2003 - 19:00 #41
Jeg har sat (Upload ) Mappen til 777

Jeg har sendt det til din mail
Avatar billede googolplex Novice
23. juni 2003 - 19:07 #42
Der var den, jeg tænkte nok det var chmod :P

Men nu har jeg samme fejl som dig, kigger lige videre :)
Avatar billede crapmaster Nybegynder
23. juni 2003 - 19:10 #43
ok
Avatar billede googolplex Novice
23. juni 2003 - 19:15 #44
Ok, den kan jeg altså ikke greje, tvivler faktisk på det er koden, der er noget galt med !

Men prøv at luk dette spørgsmål og opret et nyt (det må du gerne, spørgsmålet er jo ikke det samme længere).

Der er garanteret en eller anden der kan hitte ud af det :)

Ps. Så kigger jeg lige med :P
Avatar billede crapmaster Nybegynder
23. juni 2003 - 19:16 #45
ok og tak for hjælpen.....
Avatar billede crapmaster Nybegynder
23. juni 2003 - 19:16 #46
//Lukker
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