Avatar billede mr.burns Nybegynder
28. april 2007 - 23:52 Der er 1 kommentar og
1 løsning

Angiv mappe at vise billeder fra

Hej, som sagt så vil jeg bestemme fra hvilken mappe den skal vise billederne. Scriptet laver thumblines af alle billederne der ligger i samme mappe som den. Har lagt den i en anden mappe og bruger så include, men så "tror" filen at den er i roden af biblioteket og viser de billeder der er der, i stedet for den mappe den ligger i.
Så hvad skal jeg ændre for at bestemme hvilken mappe den tager billederne fra? Kan man overhovedet det når jeg bruger include? Hvad kan jeg ellers gøre?

<?php
/*************************************************
* Micro Photo Gallery
*
* Version: 1.0
* Date: 2007-04-05
*
* Usage:
* Just copy these files into your image folder
*
****************************************************/

$columns    = 5;
$thmb_width  = 120;
$thmb_height = 80;

function resizeImage($originalImage,$toWidth,$toHeight){
   
    // Get the original geometry and calculate scales
    list($width, $height) = getimagesize($originalImage);
    $xscale=$width/$toWidth;
    $yscale=$height/$toHeight;
   
    // Recalculate new size with default ratio
    if ($yscale>$xscale){
        $new_width = round($width * (1/$yscale));
        $new_height = round($height * (1/$yscale));
    }
    else {
        $new_width = round($width * (1/$xscale));
        $new_height = round($height * (1/$xscale));
    }
    // Resize the original image
    $imageResized = imagecreatetruecolor($new_width, $new_height);
    $imageTmp    = imagecreatefromjpeg ($originalImage);
    imagecopyresampled($imageResized, $imageTmp, 0, 0, 0, 0, $new_width, $new_height, $width, $height);

    return $imageResized;
}

function generateThumbnails(){
    global $thmb_width,$thmb_height;
   
    // Open the actual directory
    if ($handle = opendir(".")) {
        // Read all file from the actual directory
        while ($file = readdir($handle))  {
            // Check whether tha actual item is a valid file
            if (is_file($file)){
                // Check whether the actual image is a thumbnail
                  if (strpos($file,'_th.jpg')){
                      $isThumb = true;
                  } else {
                      $isThumb = false;
                  }
             
                  if (!$isThumb) {
                      // Process the file string
                      $dirName  = substr($file,0,strpos($file,basename($file)));
                      if (strlen($dirName) < 1) $dirName = '.';
                      $fileName = basename($file);
                      $fileMain = substr($fileName,0,strrpos($fileName,'.'));
                      $extName  = substr($fileName,strrpos($fileName,'.'),
                                          strlen($fileName)-strrpos($fileName,'.'));
                     
                      // Check if the actual file is a jpeg image
                      if (($extName == '.jpg') || ($extName == '.jpeg')){
                        $thmbFile = $dirName.'/'.$fileMain.'_th.jpg';
                        // If a thumbnail dosn't exists tahn create a new one
                        if (!file_exists($thmbFile)){
                            imagejpeg(resizeImage($file,$thmb_width,$thmb_height),$thmbFile,80);
                        }
                    }
                  }
              }
          }
    }
   
}

function getNormalImage($file){
    $base = substr($file,0,strrpos($file,'_th.jpg'));
    if (file_exists($base.'.jpg')) return $base.'.jpg';
    elseif (file_exists($base.'.jpeg')) return $base.'.jpeg';
    else return "";
}

function displayPhotos(){
    global $columns;
   
    generateThumbnails();
    $act = 0;
    // Open the actual directory
    if ($handle = opendir(".")) {
        // Read all file from the actual directory
        while ($file = readdir($handle))  {
            // Check whether tha actual item is a valid file
            if (is_file($file)){
                // Check whether the actual image is a thumbnail
                  if (strpos($file,'_th.jpg')){
                    ++$act;
                    if ($act > $columns) {
                        echo '</tr><tr><td class="photo"><a href="'.getNormalImage($file).'"><img src="'.$file.'" alt="'.$file.'"/></a></td>';   
                        $act = 1;
                    } else {
                        echo '<td class="photo"><a href="'.getNormalImage($file).'"><img src="'.$file.'" alt="'.$file.'"/></a></td>';   
                    }
                     
                  }
              }
        }
    }   
}

?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "DTD/xhtml1-transitional.dtd">
<html>
<head>
  <title>Micro Photo Gallery</title>
  <link href="style/style.css" rel="stylesheet" type="text/css" />
</head>
<body>
  <div id="main">
    <div class="caption">Micro Photo Gallery</div>
      <table align="center"><tr>   
            <?php displayPhotos(); ?>
      </table>       
           
    <div id="source">Micro Photo Gallery 1.0</div>
  </div>
</body>
Avatar billede windcape Praktikant
29. april 2007 - 17:42 #1
Ændre stien her:

    // Open the actual directory
    if ($handle = opendir(".")) {

Og næsten gang, læs koden før du spørger, dette er et forum for udviklere, ikke for personer som skal have skrevet gratis kode.
Avatar billede mr.burns Nybegynder
02. maj 2008 - 15:34 #2
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