Avatar billede oleodder Nybegynder
27. juli 2004 - 23:14 Der er 7 kommentarer og
1 løsning

Vis både filnavn OG billede

Hej Alle

Anvender normalt ikke PHP, så jeg kan desværre ikke selv løse dette, selvom det vist nok er et nemt spørgsmål.

Jeg har en side der lister nogle jpg billeder via et filnavn.
Jeg vil gerne have selve billederne vist sammen med filnavnet.

Kan det lade sig gøre ??

Eksempel (ikke min) på min side kan ses her: http://www.webcafe.dk/artikler/php/upload/wc_upload.php

Og min kode står herunder:

<?php

/**
* 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["PHP_SELF"]);
  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 coderdk Praktikant
28. juli 2004 - 00:29 #1
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);
  }

}


ændres til:

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)) {
          if ( preg_match("/\.(jp(e|g|eg)|gif|png)$/i", $fil ) )
          {
            $fil_liste[] = "<a href=\"$bibliotek/$fil\"><img src=\"$bibliotek/$fil\" border=\"0\" align=\"middle\">$fil</a>";
          }
          else
          {
            $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 oleodder Nybegynder
28. juli 2004 - 00:33 #2
Tak Tak Tak...Mange tak for dit svar, jeg prøver med det samme.

(det har virkelig været et stort problem for mig, da jeg ikke kender nogle PHP eksperter....og det gør mine computervenner desværre heller ikke...)

Så mange tak - Jeg prøver lige.
Avatar billede oleodder Nybegynder
28. juli 2004 - 00:39 #3
Perfekt - Det virker præcist som det skal. Mange tak.

Tillægsspørgsmål:
På min upload side viser jeg 90 billeder, så siden bliver meget lang !! Er det muligt, at lade billederne med filnavn, -fortsætte hen af siden vandret, så siden ikke bliver så lang ??  Eller også bare med 5 billeder, før der kommer en <br> ??
Avatar billede coderdk Praktikant
28. juli 2004 - 01:41 #4
Mjah, men den er lidt længere og desuden uden for dette spørgsmåls scope. Du skal ændre:

        if(is_array($fil_liste)) {
dét ->      $liste = "<li>" . join("</li><li>", $fil_liste) . "</li>";
        } else {

Hvis du vil det, kan du ikke længere bruge <ul> og <li>... Så er du nødt til at bruge en løkke og enten en tabel eller noget div-halløj.
Avatar billede oleodder Nybegynder
28. juli 2004 - 10:49 #5
Hej coderdk

Jeg er helt enig, det er udenfor spørgsmålet. Du skal have mange tak for din hjælp, det var helt perfekt.

Jeg opretter så lige et nyt.
Avatar billede oleodder Nybegynder
28. juli 2004 - 10:55 #6
Avatar billede oleodder Nybegynder
28. juli 2004 - 10:57 #7
Værsgo - point til dig, coderdk.

Hvis du kan, må du gerne give et skud på mit ekstra spørgsmål, http://www.eksperten.dk/spm/523966

Jeg kan desværre ikke selv, da jeg absolut intet kan med PhP.

Tak for hjælpen.
Avatar billede coderdk Praktikant
28. juli 2004 - 11:19 #8
Tak :) Kan være jeg kigger på det senere :)
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