Avatar billede foxskywalker Nybegynder
01. marts 2006 - 09:32 Der er 19 kommentarer og
1 løsning

Billed galleri uden de store dikkedare

Hejsa Experter

Jeg leder efter et billedgalleri. Det skal være meget simpelt, man smider index.php ind i en mappe sammen med sine billeder og den finder alle billederne og sætter dem ind efter hinanden.

Kan eventuelt sættes op til max antal billeder og selv lave 2 eller flere sider, hvis man har f.eks. max 8 billeder :)

Er der nogen der kender et sådan eller ved hvordan det laves?
Avatar billede jakobdo Ekspert
01. marts 2006 - 10:13 #1
Måske noget i stil med:

<?php

$allowPics = array(
    1 => "GIF",
    2 => "JPG",
    3 => "PNG",
    4 => "SWF",
    5 => "PSD",
    6 => "BMP",
    7 => "TIFF(intel byte order)",
    8 => "TIFF(motorola byte order)",
    9 => "JPC",
    10 => "JP2",
    11 => "JPX",
    12 => "JB2",
    13 => "SWC",
    14 => "IFF",
    15 => "WBMP",
    16 => "XBM"
    );
   
setlocale( LC_ALL, "da", "dan", "da_DK", "da_DK.ISO8859-1", "danish" );
echo "<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01 Strict //EN\" \"http://www.w3.org/TR/html4/strict.dtd\">\n";
echo "<html>\n";
echo "<head>\n";
echo "<title>Upload Test</title>\n";
echo "<link rel=\"stylesheet\" type=\"text/css\" href=\"style.css\">\n";
echo "</head>\n";
echo "<body>\n";
echo "<div id=\"content\">\n";
echo "<h1>gallery</h1>\n";

$fileArray = array();

$uploaddir = ".";

// Open a known directory, and proceed to read its contents
if (is_dir(getcwd() . $uploaddir))
{
    if ($dh = opendir(getcwd() . $uploaddir))
    {
        while (($file = readdir($dh)) !== false)
        {
            $fullPath = "." . $uploaddir . "/" . $file;
            if(is_file($fullPath))
            {
                $size = getimagesize($fullPath);
                if((array_key_exists($size[2],$allowPics)) && (preg_match('/^thumb_/', $file)))
                {
                    $fileArray[filemtime($fullPath)] = $file;
                }
            }
        }
        closedir($dh);
    }
}

$kolonner = 3;
$antalImages = count($fileArray);

if($antalImages > 0)
{
    krsort($fileArray);
   
    echo "<table id=\"centerTable\">\n";
    echo "<tr>\n";
    $i = 0;
   
    foreach($fileArray as $time => $file)
    {
    if(!($i%$kolonner) && $i>0 && $i < $antalImages)
    {
            $tmp .= "</tr>\n<tr>\n";
    }
    $tmp .= "<td><a target=\"_blank\" href=\"show.php?src=".preg_replace('/^thumb_/', 'original_', $file)."\"><img src=\"upload/".$file."\" title=\"Billedet er uploadet: ".strftime("%e. %B %Y - %T",$time)."\" alt=\"".basename($file)."\"></td>\n";
    $i++;
  }
 
  for($i=0; $antalImages % $kolonner && $i<$kolonner-($antalImages % $kolonner); $i++)
  {
        $tmp .= "<td>&nbsp;</td>\n";
  }
  $tmp .= "</tr>\n</table>";
  echo $tmp;
}
else
{
    echo "Vi har ikke uploadet nogle billeder endnu, de kommer...";
}

echo "</div>\n";
echo "</body>\n";
echo "</html>\n";
?>
Avatar billede foxskywalker Nybegynder
01. marts 2006 - 10:21 #2
Den viser ikke noget, selvom den ligger i en mappe med JPG billeder
Avatar billede jakobdo Ekspert
01. marts 2006 - 10:41 #3
Denne måske:

<?php
//http://www.eksperten.dk/spm/691753

$allowPics = array("gif","jpeg","jpg","jpe");
 
setlocale( LC_ALL, "da", "dan", "da_DK", "da_DK.ISO8859-1", "danish" );
echo "<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01 Strict //EN\" \"http://www.w3.org/TR/html4/strict.dtd\">\n";
echo "<html>\n";
echo "<head>\n";
echo "<title>Upload Test</title>\n";
echo "<link rel=\"stylesheet\" type=\"text/css\" href=\"style.css\">\n";
echo "</head>\n";
echo "<body>\n";
echo "<div id=\"content\">\n";
echo "<h1>Gallery</h1>\n";

$fileArray = array();

$uploaddir = getcwd() . "/upload";

// Open a known directory, and proceed to read its contents
if (is_dir($uploaddir))
{
    if ($dh = opendir($uploaddir))
    {
        while (($file = readdir($dh)) !== false)
        {
            $fullPath = $uploaddir . "/" . $file;
            if(is_file($fullPath))
            {
                $ext = strtolower(end(explode(".",$file)));
                if(in_array($ext,$allowPics))
                {
                    $fileArray[filemtime($fullPath)] = $file;
                }
            }
        }
        closedir($dh);
    }
}

$kolonner = 3;
$antalImages = count($fileArray);

if($antalImages > 0)
{
    krsort($fileArray);
 
    echo "<table id=\"centerTable\">\n";
    echo "<tr>\n";
    $i = 0;
 
    foreach($fileArray as $time => $file)
    {
        if(!($i%$kolonner) && $i>0 && $i < $antalImages)
    {
            $tmp .= "</tr>\n<tr>\n";
        }
        $tmp .= "<td><img src=\"upload/".$file."\" title=\"Billedet er uploadet: ".strftime("%e. %B %Y - %T",$time)."\" alt=\"".basename($file)."\"></td>\n";
        $i++;
    }
   
    for($i=0; $antalImages % $kolonner && $i<$kolonner-($antalImages % $kolonner); $i++)
  {
        $tmp .= "<td>&nbsp;</td>\n";
  }
  $tmp .= "</tr>\n</table>";
  echo $tmp;
}
else
{
    echo "Vi har ikke uploadet nogle billeder endnu, de kommer...";
}

echo "</div>\n";
echo "</body>\n";
echo "</html>\n";
?>
Avatar billede foxskywalker Nybegynder
01. marts 2006 - 10:51 #4
Samme problem, den er lidt langsom til at loade og så kommer disse frem. Er der nogen begrænsning på størrelsen?
Avatar billede foxskywalker Nybegynder
01. marts 2006 - 10:51 #5
Avatar billede jakobdo Ekspert
01. marts 2006 - 11:14 #6
Prøv at ret:
// Open a known directory, and proceed to read its contents
if (is_dir($uploaddir))
{
    if ($dh = opendir($uploaddir))
    {
        while (($file = readdir($dh)) !== false)
        {
            $fullPath = $uploaddir . "/" . $file;
            if(is_file($fullPath))
            {
                $ext = strtolower(end(explode(".",$file)));
                if(in_array($ext,$allowPics))
                {
                    $fileArray[filemtime($fullPath)] = $file;
                }
            }
        }
        closedir($dh);
    }
}
til:
// Open a known directory, and proceed to read its contents
if (is_dir($uploaddir))
{
    if ($dh = opendir($uploaddir))
    {
        while (($file = readdir($dh)) !== false)
        {
            $fullPath = $uploaddir . "/" . $file;
echo "Fullpath: " . $fullPath . "<br>";
            if(is_file($fullPath))
            {
                $ext = strtolower(end(explode(".",$file)));
echo "Extension: " . $ext . "<br>";
echo "Fil: " . $file . "<br>";
                if(in_array($ext,$allowPics))
                {
                    $fileArray[filemtime($fullPath)] = $file;
                }
            }
        }
        closedir($dh);
    }
}
Avatar billede foxskywalker Nybegynder
01. marts 2006 - 11:20 #7
Der sker ik ret meget, andet end før.

koden er nu:

<html>
<head>
<title>Hovedsiden</title>
</head>
<body>

<?php
//http://www.eksperten.dk/spm/691753

$allowPics = array("gif","jpeg","jpg","jpe");
 
setlocale( LC_ALL, "da", "dan", "da_DK", "da_DK.ISO8859-1", "danish" );
echo "<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01 Strict //EN\" \"http://www.w3.org/TR/html4/strict.dtd\">\n";
echo "<html>\n";
echo "<head>\n";
echo "<title>Upload Test</title>\n";
echo "<link rel=\"stylesheet\" type=\"text/css\" href=\"style.css\">\n";
echo "</head>\n";
echo "<body>\n";
echo "<div id=\"content\">\n";
echo "<h1>Gallery</h1>\n";

$fileArray = array();

$uploaddir = getcwd() . "/upload";

// Open a known directory, and proceed to read its contents
if (is_dir($uploaddir))
{
    if ($dh = <html>
<head>
<title>Hovedsiden</title>
</head>
<body>

<?php
//http://www.eksperten.dk/spm/691753

$allowPics = array("gif","jpeg","jpg","jpe");
 
setlocale( LC_ALL, "da", "dan", "da_DK", "da_DK.ISO8859-1", "danish" );
echo "<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01 Strict //EN\" \"http://www.w3.org/TR/html4/strict.dtd\">\n";
echo "<html>\n";
echo "<head>\n";
echo "<title>Upload Test</title>\n";
echo "<link rel=\"stylesheet\" type=\"text/css\" href=\"style.css\">\n";
echo "</head>\n";
echo "<body>\n";
echo "<div id=\"content\">\n";
echo "<h1>Gallery</h1>\n";

$fileArray = array();

$uploaddir = getcwd() . "/upload";

// Open a known directory, and proceed to read its contents
if (is_dir($uploaddir))
{
    if ($dh = opendir($uploaddir))
    {
        while (($file = readdir($dh)) !== false)
        {
            $fullPath = $uploaddir . "/" . $file;
echo "Fullpath: " . $fullPath . "<br>";
            if(is_file($fullPath))
            {
                $ext = strtolower(end(explode(".",$file)));
echo "Extension: " . $ext . "<br>";
echo "Fil: " . $file . "<br>";
                if(in_array($ext,$allowPics))
                {
                    $fileArray[filemtime($fullPath)] = $file;
                }
            }
        }
        closedir($dh);
    }
}

$kolonner = 3;
$antalImages = count($fileArray);

if($antalImages > 0)
{
    krsort($fileArray);
 
    echo "<table id=\"centerTable\">\n";
    echo "<tr>\n";
    $i = 0;
 
    foreach($fileArray as $time => $file)
    {
        if(!($i%$kolonner) && $i>0 && $i < $antalImages)
    {
            $tmp .= "</tr>\n<tr>\n";
        }
        $tmp .= "<td><img src=\"upload/".$file."\" title=\"Billedet er uploadet: ".strftime("%e. %B %Y - %T",$time)."\" alt=\"".basename($file)."\"></td>\n";
        $i++;
    }
   
    for($i=0; $antalImages % $kolonner && $i<$kolonner-($antalImages % $kolonner); $i++)
  {
        $tmp .= "<td>&nbsp;</td>\n";
  }
  $tmp .= "</tr>\n</table>";
  echo $tmp;
}
else
{
    echo "Vi har ikke uploadet nogle billeder endnu, de kommer...";
}

echo "</div>\n";
echo "</body>\n";
echo "</html>\n";

?>

</body>
</html>

www.dannymator.dk/hcc/image/test2.php
Avatar billede jakobdo Ekspert
01. marts 2006 - 11:22 #8
Fuck, en rest fra min kode... :o(

Ret: $uploaddir = getcwd() . "/upload";
Til: $uploaddir = getcwd();
Avatar billede kourinsu Nybegynder
01. marts 2006 - 15:58 #9
Jeg har lavet er script der, i slutresultatet, ser sådan ud:
http://motherblogger.dk/example/SJC-ImageGallery_v101.php

Jeg har lavet det som gratis-script, så kan du bruge det, må du gerne få en kopi.
Avatar billede foxskywalker Nybegynder
02. marts 2006 - 08:55 #10
Hehe stadig ingenting.

kourinsu>> Jeg skal ikke bruge Thumbnails til noget den skal kun sætte dem op efter hinanden.
Avatar billede jakobdo Ekspert
02. marts 2006 - 08:58 #11
Damn, fejlen var der igen...
$tmp .= "<td><img src=\"upload/".$file."\" title=\"Billedet er uploadet: ".strftime("%e. %B %Y - %T",$time)."\" alt=\"".basename($file)."\"></td>\n";
Du skal rette:
src=\"upload/".$file."\"
til:
src=\"".$file."\"
Avatar billede foxskywalker Nybegynder
02. marts 2006 - 10:36 #12
Nu skete der noget, jeg vil bare have billederne under hinanden. ikke 3 ved siden af hinanden. Og den skriver også først hvad alle filerne hedder?

Fullpath: /hsphere/local/home/danny/dannymator.dk/hcc/image/.
Fullpath: /hsphere/local/home/danny/dannymator.dk/hcc/image/..
Fullpath: /hsphere/local/home/danny/dannymator.dk/hcc/image/DSC_0001.JPG
Extension: jpg
Fil: DSC_0001.JPG
Fullpath: /hsphere/local/home/danny/dannymator.dk/hcc/image/DSC_0002.JPG
Extension: jpg
Fil: DSC_0002.JPG
Fullpath: /hsphere/local/home/danny/dannymator.dk/hcc/image/DSC_0003.JPG
Extension: jpg
Fil: DSC_0003.JPG
Fullpath: /hsphere/local/home/danny/dannymator.dk/hcc/image/DSC_0004.JPG
Extension: jpg
Fil: DSC_0004.JPG
Fullpath: /hsphere/local/home/danny/dannymator.dk/hcc/image/DSC_0005.JPG
Extension: jpg
Fil: DSC_0005.JPG
Fullpath: /hsphere/local/home/danny/dannymator.dk/hcc/image/DSC_0006.JPG
Extension: jpg
Fil: DSC_0006.JPG
Fullpath: /hsphere/local/home/danny/dannymator.dk/hcc/image/DSC_0007.JPG
Extension: jpg
Fil: DSC_0007.JPG
Fullpath: /hsphere/local/home/danny/dannymator.dk/hcc/image/DSC_0008.JPG
Extension: jpg
Fil: DSC_0008.JPG
Fullpath: /hsphere/local/home/danny/dannymator.dk/hcc/image/galley.php
Extension: php
Fil: galley.php
Fullpath: /hsphere/local/home/danny/dannymator.dk/hcc/image/getpics.php
Extension: php
Fil: getpics.php
Fullpath: /hsphere/local/home/danny/dannymator.dk/hcc/image/test.php
Extension: php
Fil: test.php
Fullpath: /hsphere/local/home/danny/dannymator.dk/hcc/image/galleritest.php
Extension: php
Fil: galleritest.php
Fullpath: /hsphere/local/home/danny/dannymator.dk/hcc/image/index.php
Extension: php
Fil: index.php
Fullpath: /hsphere/local/home/danny/dannymator.dk/hcc/image/test2.php
Extension: php
Fil: test2.php

Dette kommer først?
Avatar billede jakobdo Ekspert
02. marts 2006 - 10:38 #13
Fjern dette fra koden:

echo "Fullpath: " . $fullPath . "<br>";
echo "Extension: " . $ext . "<br>";
echo "Fil: " . $file . "<br>";

Det var tilføjet i forbindelse med DEBUG.
Avatar billede foxskywalker Nybegynder
02. marts 2006 - 11:10 #14
Fantastisk

Nu virker det, ændrede bare "kolonner" til 1 og fik en kollone :) smaaart :)

sidste spørgsmål så får du point, hvis jeg gerne vil have at de skal have en border, hvor skal jeg så skrive det?
Avatar billede jakobdo Ekspert
02. marts 2006 - 11:16 #15
Hvad vil du have border om?
Selve billedet?
Hvis ja, tilføj:
$tmp .= "<td><img style=\"border:2px solid black;\" src=\"upload/".$file."\" title=\"Billedet er uploadet: ".strftime("%e. %B %Y - %T",$time)."\" alt=\"".basename($file)."\"></td>\n";

style=\"border:2px solid black;\"
Avatar billede jakobdo Ekspert
02. marts 2006 - 17:16 #16
Og et svar!
Avatar billede foxskywalker Nybegynder
06. marts 2006 - 07:33 #17
Jeg kan ikke helt gennemskue hvor det skal smides hen.
Avatar billede jakobdo Ekspert
06. marts 2006 - 08:06 #18
Prøv at find koden som indeholder: <img ....>
Der tilføjer du: style=\"border:2px solid black;\"
Avatar billede foxskywalker Nybegynder
08. marts 2006 - 10:50 #19
Fantastisk Point til dig
Avatar billede jakobdo Ekspert
08. marts 2006 - 11:03 #20
Takker for point!
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