Oprettet søn. d. 08. juli 2007 kl. 14:39:39

superwulff
superwulff (11.415 point. Point ude: 0)

Script der viser thumbs af dir

Hej.

Jeg vil prøve at lave et script til min hjemmeside så jeg kan lægge de billeder jeg tager på min sommerferie ind efterhånden som jeg tager dem.

Jeg har styr på login og upload funktionen, men jeg mangler et script der viser indholdet.

Det skal lige siges at jeg har prøvet mange forskellige scripts fra div. steder på nettet, men ingen af dem var det jeg præcist søgte efter.

Det, det skal kunne: Scriptet skal vise de billeder der bliver lagt ind, altså ligesom en gæstebog der ikke bruger database men læser filerne fra et dir. Det her skal bare vise thumbs (gerne som links så man kan se dem store ved at klikke på dem). Nogen der ved hvordan man gør det? eller som kan henvise mig til et sted man kan lære det?

På forhånd tak.

-Swulff

Skrevet søn. d. 08. juli 2007 kl. 16:31:42| #1

nemlig
nemlig (5.151 point)
Jeg har et lille program, som automatisk genererer thumbnails af de billedfiler, som ligger i en bestemet mappe.
Det må du gerne få.

Skrevet søn. d. 08. juli 2007 kl. 16:41:58| #2

nemlig
nemlig (5.151 point)
//Fil 1:
<html>
<head>

<style type="text/css">
a {text-decoration:none}
a:link    { color: #ffffff; text-decoration: none; }
a:visited { color: #ffffff; text-decoration: none; }
a:active  { color: #ffffff; text-decoration: none; }
a:hover  { color: #ffffff; text-decoration: none; }

.form {
    background-color: #cfcfcf;
    border-color: #000000;
    color: #000000;
    border-bottom: 1px solid;
    border-top: 1px solid;
    border-left: 1px solid;
    border-right: 1px solid;
    font-family: Verdana;
    font-size: 10px;
    cursor: hand;
    cursor: pointer;
}
</style>

</head>

<?
//Denne fil skal lægges i samme mappe som billed-filerne. Når filen indlæses genererer den automatisk thumbnails af alle billedfiler.
//På FDF-serveren må billedfilerne ikke være større end
//Navnet på billed-filen må ikke indeholde mellemrum og skal overholde almindlige regler for filnavne på hjemmesideservere
//Husk at ændre skriverettighederne på den mappe filen her ligger i
// VARIABLERNE DEFINERES I FILEN "HEAD.PHP"
require 'head.php';


### --- PAS PA MED AT RETTET NOGET HERUNDER --- ###
if(!is_dir($thumbnail_mappe)) {mkdir("$thumbnail_mappe", 0777);}

function imageresizejpeg($sourcefile,$maxwidth,$maxheight,$destinationfile) { // funktion til resize eaf jpg-filer

    global $newwidth,$newheight;

  if($img_src=@imagecreatefromjpeg($sourcefile)) {
        copy($sourcefile, $destinationfile);
        $info=@getimagesize($sourcefile);

        if($info[1]>$maxheight || $info[0]>$maxwidth)
        {
        $ratio_height=$maxheight/$info[1];
        $ratio_width=$maxwidth/$info[0];
        $ratio=min($ratio_width,$ratio_height);
        $newwidth=intval($info[0]*$ratio);
        $newheight=intval($info[1]*$ratio);
        $img_dst=imagecreatetruecolor($newwidth,$newheight);
        imagecopyresampled($img_dst, $img_src, 0, 0, 0, 0, $newwidth, $newheight, $info[0], $info[1]);
        @imagejpeg($img_dst, $destinationfile);
        imagedestroy($img_dst);
        }
        else
        {
        $newwidth=$info[0];
        $newheight=$info[1];
        }
    @imagedestroy($img_src);
    return true;
    }
    else
    {
    return false;
    }
}

function get_size($info,$maxwidth,$maxheight) { // funktion til beregning af størrelse af ikke-jpg-filer
    global $newwidth,$newheight;

    if($info[1]>$maxheight || $info[0]>$maxwidth) {
        $ratio_height=$maxheight/$info[1];
        $ratio_width=$maxwidth/$info[0];
        $ratio=min($ratio_width,$ratio_height);
        $newwidth=intval($info[0]*$ratio);
        $newheight=intval($info[1]*$ratio);
    return true;
    }
    else
    {
      $newwidth=$info[0];
      $newheight=$info[1];
    }
}

### --- PAS PA MED AT RETTET NOGET HERUNDER --- ###
$handle=opendir('.');
// GO
$piccy=array();
$count=0;
// SCAN THE DIR
//while (($filename = readdir($handle))!==false) {
while ($filename = readdir($handle)) {
  // TYPER FILER DER KAN HENTES
  if (eregi("(\.jpg|\.gif|\.bmp|\.png|\.JPG|\.GIF|\.BMP|\.PNG)$", $filename)) { // hvis fil er en billedfil
    $piccy[$count] = $filename;
    $count++;
  }
}
// LUK DIR
closedir($handle); 
// SORTERE FILERNE
sort($piccy);
reset($piccy);

// VISER STORT IMAGE
if ($_GET['large']){ // hvis large er med som query-string
$large = $_GET['large'];
        echo "<html><head><title>" . $pagetitle ."" . $large . "</title></head><body bgcolor=" . $bg . ">";
  echo '<div align="center">';
// HVIS NAVNET ER SAT TIL AT VISES?
//  if ($name=="1") {echo '<br><font face="verdana" color="white" size="1">Billednavn: ' . $large . '</font>';  }
// FIND FORRIGE OG NÆSTE
$i = 0;
$prev = "";
while ( ($piccy[$i] != $large) && ($i < sizeof($piccy)) ) {
    $prev = $piccy[$i];
    $i++;
}
if ($i == sizeof($piccy)-1) {
    $next = "";
} else {
    $next = $piccy[$i+1];
}
// VIS FORRIGE OG NÆSTE
//echo "<br><br>";

echo '<table width="100%" border=0 cellpadding=2 cellspacing=0><tr><td bgcolor="#333e46" width="35%"><b><font face="verdana" size="2" color="white">' . $pagetitle . '</b></font></td>
<td bgcolor="#333e46" align="center" width="30%">';
echo '<button onclick="location.href=\'?large='.$prev .'\';return false;" class="form">[&lt; &lt;]</button>';
echo "&nbsp;&nbsp;&nbsp;&nbsp;";
echo '<button onclick="location.href=\'?large='.$next .'\';return false;" class="form">[&gt; &gt;]</button>';
echo '</b></font></td>

<td bgcolor="#333e46" align="right" width="35%">';
if ($name=="1") {echo '<font face="verdana" color="white" size="2">Billednavn: ' . $large . '</font>';  }
echo '</b></font></td></tr></table>';

// VIS IMAGE
  echo '<table width="100%" border=0 cellpadding=0 cellspacing=0>';
  echo '<tr>';
  echo '<td valign="middle" align="center">
  <table border=15 bordercolor="#333e46" cellpadding=2 cellspacing=0><tr><td bgcolor="black">
  <a href=' .$filnavn.'><img src="'.$large.'" alt="'.$large.'" border=0></a>
  </td>
  </tr>
  </table>
  </td>';
  echo '<br>';
  echo '</tr></table>';
  echo '<br>';
  echo '<center><button onclick="location.href=\''.$filnavn .'\';return false;" class="form">Tilbage til galleri</button>';


// NO PROBLEMO, LAVER TABLER FOR THUMBNAILS:
} else { // hvis large ikke er med som query-string

// START TABLE SAET cellpadding, cellspacing, colors, 
echo '<html><head><title>'. $pagetitle .'</title>';
echo '<head>';
echo "<body bgcolor=" . $bg . ">";
echo '<table width="100%" border=0 cellpadding=1 cellspacing=0><tr><td bgcolor="#333e46"><b><font face="verdana" size="5" color="white"><a href="'.$sti .'">' . $pagetitle . '</a></b></font></td><td bgcolor="#333e46" align="right"><a href="'.$sti .'"><img src="' .$grafiksti .'fdflogo_lille.gif" border=0></a></td></tr></table>';
echo '<br><b><center><font face="verdana" size="1" color="white">Klik på et billede for at vise det i stort format!</b></font></center><br>';
echo '<table width="100%" border=0 cellpadding=3 cellspacing=0>';
echo '<tr>';
// FORDI <TD> DET ER SAT AF BRUGER, LAV THE PERCENTAGES:
$divider=ceil(100/$td);
if (($divider*$td)>100) $divider--;

// HENT IMAGES
for ($l=0;$l<=sizeof($piccy)-1;$l++){
  $isend = strpos((($l)/$td),".");
  if (!$isend && ($l!=0)){
  echo "</tr>\n<tr><td colspan=$td><br></td></tr>\n<tr>\n";
  }
  if ($l==0){
  echo "\n";
  }
  // START <TD>
  echo '<td width="'.$divider.'%" valign="middle" align="center">';
  // FA STORT BILLEDE (IF SELECTED)
  echo '<table border=8 bordercolor="#333e46" cellpadding=2 cellspacing=0><tr><td bgcolor="black">';
  echo "<a href=\"$PHP_SELF?large=" . $piccy[$l] . "\">";

  // VISER THUMBNAILS
  $thumb_mappe = $thumbnail_mappe . "/"; // vi sætter en skråstreg efter undermappens navn
  $thumb_name = $thumb_mappe . "thumbnail_" . $piccy[$l];

 
  if (eregi("(\.jpg|\.JPG)$", $piccy[$l])) { // hvis filtype er jpg
    if(!file_exists($thumb_name)) {
  imageresizejpeg($piccy[$l],$maxwidth,$maxheight,$thumb_name) ;
    } else {
  $size=getimagesize($piccy[$l]); // laver et array med width og hight
  get_size($size,$maxwidth,$maxheight) ;
    } 
  echo '<img src="' . $thumb_name . '" alt="' . $piccy[$l] . '" border=0 width="' . $newwidth .'" height="' . $newheight .'"></a></td></tr></table>';
  } else { // hvis filtype ikke er jpg
  $size=getimagesize($piccy[$l]); // laver et array med width og hight
  get_size($size,$maxwidth,$maxheight) ;
  echo '<img src="' . $piccy[$l] . '" alt="' . $piccy[$l] . '" border=0 width="' . $newwidth .'" height="' . $newheight .'"></a></td></tr></table>';
  }
  // OM NAVNET ER SAT TIL AT BLIVE VIST?
  if ($name=="1") {
  echo '<center><font face="verdana" color="white" size="1">' . $piccy[$l] . '</center></font>';
  }
  echo '</td>';
  echo"\n";
} // for-løkken slutter
  echo '</tr></table></div>';
  echo '<br><center><button onclick="location.href=\''.$sti .'\';return false;" class="form">Tilbage til oversigt</button>';

} // else slutter
  echo '<br><br><br><div align="center"><font face="verdana" size="1"></a></font></div></body></html>';
?>

//FIL 2 = head.php
<?php

### ---  HERFRA SKAL RETTES HVER GANG --- ###

// VIS TITLEN PA SIDEN
$pagetitle='Kredsweekend 2006 - Mellerup';

//Sti og fil til fotooversigten (bruges på oversigtens tilbage-knap)
//Sti og fil kan også være '../../landslejr2006.html'
$sti='../fotoarkiv.html';

### ---  HERTIL SKAL RETTES HVER GANG --- ###



//Sti til grafikfil på thumbnailoversigten
$grafiksti='../';

// Thumbnails max størrelse
$maxwidth = 225;
$maxheight = 150;

// Thumbnail-mappens navn
$thumbnail_mappe = "thumbs";

// NUMRE AF <TD> PR. <TR> ( PA DANSK/ENGELSK: COLUMNS PA SIDEN :-) )
$td='4';

// BAGGRUNDSFARVE
$bg='#404d57';

// SKAL NAVNES VISES PÅ BILLEDET
$name='1'; // 1 = yes, 0 = no

//Navnet på denne fil
$filnavn = 'fotothumb.php';
?>

Skrevet søn. d. 08. juli 2007 kl. 16:43:50| #3

nemlig
nemlig (5.151 point)
Ovenståender er 2 filer, som placeres i samme mappe som billedfilerne.
Mappen som filerne ligger i, skal skrivbare (Fjern skrivebeskyttelsen).

Skrevet søn. d. 08. juli 2007 kl. 16:45:29| #4

nemlig
nemlig (5.151 point)
Eksempel kan ses her:
http://fdf.dk/ (...)
Der er dog problemer med serveren i dag, hvorfor du kan oplever ustabilitet.

Skrevet søn. d. 08. juli 2007 kl. 18:30:40| #5

superwulff
superwulff (11.415 point)
Super. Tak for det.

-swulff


p.s. har du selv skrevet det?

Skrevet søn. d. 08. juli 2007 kl. 18:32:28| #6

superwulff
superwulff (11.415 point)
Lige en ting.

Skal scriptet være i en fil eller seperate?

-swulff

Skrevet søn. d. 08. juli 2007 kl. 18:34:00| #7

superwulff
superwulff (11.415 point)
Aahh.. så først nu //Fil 1 og //Fil 2

Skrevet søn. d. 08. juli 2007 kl. 18:49:12| #8

nemlig
nemlig (5.151 point)
Jeg har kun skrevet lidt af det. Jeg fandt det her på Eksperten for et par år siden, og så har jeg efterfølgende foretaget en række rettelser.
Spørg bare, hvis der er noget, som driller.

Skrevet søn. d. 08. juli 2007 kl. 19:02:02| #9

superwulff
superwulff (11.415 point)
okay..

smider du et svar?

-swulff

Skrevet søn. d. 08. juli 2007 kl. 19:10:33| #10


Skriv et indlæg




Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] [img]link til billede[/img]
Web- og emailadresser omdannes automatisk til links

Log ind

   

   

Seneste spørgsmål

Brugerliste med link til profil

Oprettet den 26. maj 2012 kl. 14.29
sayn giver 30 point for svar | Giv et svar »

php curl driller

Oprettet den 26. maj 2012 kl. 08.31
PHPnQrd giver 200 point for svar | Giv et svar »

Array i array

Oprettet den 25. maj 2012 kl. 08.32
sebster giver 60 point for svar | Giv et svar »



   




Tips & Tricks fra PC World

Teaser billede

Læserne: Her er vores værste it-indkøb

Det er ikke al it-udstyr, som er det rene guld. Her er nogle af læsernes skrækhistorier.


Anmeldelser fra PC World

Teaser billede

Test: Mobil med Ferrari-design - og en Trabant-motor

Motorola har begået endnu en smartphone med lækkert design og potentiale til at være blandt de bedste. Men den når ikke i mål. Se her hvorfor.


Seneste blogindlæg

Teaser billede

Tvangslukke spørgsmål: Hvad er den bedste løsning?

Hej Vi har mange åbne spørgsmål på Eksperten. Vi ville gerne tvangslukke dem - så et spørgsmål efter f.eks. 6 måneder lukkes. Men der er et par uklarheder som ville være gode at få lidt input til:...


Nyheder fra PC World

Teaser billede

Sådan siger du farvel til Facebook

Læs her, hvordan du dropper Facebook og i stedet anvender nogle brugervenlige alternativer, så du stadig kan være social på nettet.


Nyheder fra Computerworld

Teaser billede

Galleri: De fedeste håndholdte gennem 40 år

Her har du de mest banebrydende håndholdte computere gennem alle tider.


Kurser
Samarbejdspartnere

Udgiver · © 2012 IDG Danmark A/S · Hørkær 18 · 2730 Herlev · Tlf.: 77 300 300 · Fax: 77 300 301 · Brug af personoplysninger