Avatar billede michaeljuul Nybegynder
10. april 2005 - 22:24 Der er 23 kommentarer og
1 løsning

Skift ikon ud.

På min side www.duerher.dk/test er der et lille ikon ud for hver fil.
Jeg vil gerne have at den viser det ikon som passer til hver fil. F.eks ud for zip filen viser den en fil zip.gif.

Jeg har et Dri som hedder icons. Og i det er de ikonfiler som jeg gerne vil have den til at vise.

Se min kode:

<?
#<!-- Directory Listing Powered By Dirlist Version 2 With Fix2 =>  http://www.vmist.net/scripts/dirlist.php -->
$show_select="true"; // put "true" to show display box or "no" to hide.
$show_search = "true"; // put "true" to show search or "no" to hide.
$show_filenames = "no"; /* when the display is on Titles, put "true" to have text at the top of
                          the Tite with the filename, put "no" to hide the filename only for non image files.*/
$otherpath=""; // put the path where you want the directory to view, no slashes before or after the path.
$thum_width=100;
$thum_height=90;
$rows=6; // When in titled display, this is how many pictures will be in a row.

//do not edit anything below this line
$mode = $HTTP_GET_VARS["image"];
$S = $HTTP_GET_VARS["S"];
$view = $HTTP_GET_VARS["view"];
$mode= $HTTP_GET_VARS["mode"];
$showonly= $HTTP_GET_VARS["showonly"];

$path =str_replace(basename($_SERVER['PHP_SELF']), '', $_SERVER['PHP_SELF']);

if("$otherpath" == ""){
$dir="./";
}else{
$path=$path.$otherpath;
$foldertoher="$otherpath/";
$dir="$otherpath";
}
if("$mode" !== "image"){

echo "<title> Directory of $path</title>";
if (!isset($view)){  $view = details; }
if (!isset($S)){ $S =N; }

function wsort($letter,$ww){
global $S,$A,$view,$showonly;
if($A == "" && $S == $letter){ $extra="&A=D"; }
echo "<A HREF=\"?S=$letter&view=$view$extra&showonly=$showonly\">$ww</A>";
}

function viewoption($value,$wrd){
global $view;
if("$view" == "$value" ){ $sel = selected;  }
echo "<option value=\"$value\" $sel>$wrd \n";
}




$dh  = @opendir($dir);
$i=0;
while (false !== ($dirfile = @readdir($dh))) {
if($dirfile !== '..' && $dirfile !== '.' ){
if($showonly){
if(@eregi("$showonly", $dirfile )){ $dirfile =$dirfile; } else { $dirfile = "";  }

}
if("$dirfile" !== ""){

switch ($S) {
case N:
$files[$i][name] = $dirfile;
$files[$i][fd] = @filemtime("$dir/$dirfile");
$files[$i][size] = @filesize("$dir/$dirfile");
break;
case M:
$files[$i][fd] = @filemtime("$dir/$dirfile");
$files[$i][size] = @filesize("$dir/$dirfile");
$files[$i][name] = $dirfile;
break;
case S:
$files[$i][size] = @filesize("$dir/$dirfile");
$files[$i][name] = $dirfile;
$files[$i][fd] = @filemtime("$dir/$dirfile");
break;
}//end case

$sumsize[] =@filesize("$dir/$dirfile");

$i++;

}
}
}
if(empty($files)){ $isempty = "yes"; }

function filesizepre($filesize){ return round( ($filesize / 1024),1  ).k;  }

?>


<? if($show_search == true){ ?>

<?  } ?>

<H1>Index of <? echo $path ?> </H1>
<? if("$show_search" == "true"){ ?>
<form name="form1" method="get" action="">

<input type="submit" name="Submit" value="File Search ">
<input name="showonly" type="text" id="showonly" size="15" value="<? echo $showonly  ?>">
<br>
<? }else{

echo "<input name=showonly type=hidden value=\"$showonly\">";

} ?>

<input name="A" type="hidden" value="<? echo $A ?>">
<input name="S" type="hidden" value="<? echo $S ?>">

<? if("$show_select" == "true"){ ?>
<select name="view" onChange="document.form1.submit()">

<? viewoption(image,"Image Preview"); ?>
<? viewoption(details,"Details"); ?>
<? viewoption(titles,"Titles"); ?>
</select>
<? } ?>
<font color="#376D95" size=2><em><? if("$showonly" ==""){ echo  'Files in directory:'; }else{ echo "Files Showing:"; } ?> <? echo sizeof($files); ?>  <?  if("$showonly" ==""){  echo 'Directory Size:'; }else{ echo "Sorted Size:"; } ?> <?  echo filesizepre(@array_sum($sumsize)) ?> <? if("$showonly" && "$isempty"  !==""){ echo " - File Search Provided 0 Results."; } ?>
<br>
</em></font>

</form>
<PRE><? wsort(N,Name); ?>                                    <? wsort(M,"Last Modified"); ?>      <? wsort(S,"Size"); ?>  <HR>
<?





if($A == ""){
@sort($files);
}else{

@rsort($files);
}
if(!$isempty){
$rt=1;
foreach($files as $filename){



$getname22 = substr("$filename[name]", 0, 22);
if(strlen($filename[name]) > 22){ $prefilename = "$getname22..."; }else{ $prefilename = $getname22; }


if($view == image ){
echo "<br><a href=\"$foldertoher$filename[name]\"><img src=\"".$_SERVER['PHP_SELF']."?view=$view&mode=image&image=$filename[name]\" width=$thum_width height=$thum_height border=0></a><br>";

}
if($view == details){


echo "<br><IMG SRC=\"/icons/portal.gif\" ALT=\"[$exten]\"> ";
}

if($view == titles){
$br='';
if($rt == $rows){ $br="<br>"; $rt =0; }
echo "<a href=\"$foldertoher$filename[name]\"><img src=\"".$_SERVER['PHP_SELF']."?view=$view&mode=image&title=yes&image=$filename[name]\" width=$thum_width height=$thum_height border=0></a>  $br";


}else{

echo "<A HREF=\"$foldertoher$filename[name]\">$prefilename</A>      ". str_repeat(" ",(25 - strlen($prefilename))) ."    ".date("j-M-y h:iA", $filename[fd])."  ".(filesizepre($filename[size]) )."  ";
}

$rt++;
}
}//is empty
?>

</PRE><HR>
<? echo $_SERVER['SERVER_SIGNATURE']; ?>
<?

}//end of mode if nothing
if("$mode" == "image"){
$image = $foldertoher.$HTTP_GET_VARS["image"];


$view = $HTTP_GET_VARS["view"];

$exten = strtoupper(strstr($image, '.'));
switch ($exten) {
case '.JPEG':
$imgd = @imagecreatefromjpeg($image);
break;
case '.JPG':
$imgd= @imagecreatefromjpeg($image);
break;
case '.GIF':
$imgd = @imagecreatefromgif($image);
break;
case '.PNG':
$imgd = @imagecreatefrompng($image);
break;
}

$im = imagecreatetruecolor($thum_width,$thum_width);

$size = @getimagesize($image);




$getname22 = substr(@eregi_replace("$exten","",$image) , 0, ($thum_width / 10));

if( (strlen(@eregi_replace("$exten","",$image)))  > ($thum_width / 10) ){ $w_er = "$getname22..$exten"; }else{ $w_er = $getname22.$exten; }

if("$imgd" == ""){  $w_er = "$image";  $white = imageColorallocate($im, 255,255,255);  $filetype="file"; }else{

$rr=@imagecolorat($imgd, 10, 4);
$cn = @imagecolorsforindex($imgd, $rr);
if("".$cn[red].$cn[green].$cn[blue]."" < "200200200"){    $white = imageColorallocate($im, 255,255,255);  }
}

@imageCopyResampled($im, $imgd , 0, 0, 0, 0, $thum_width,$thum_width, $size[0], $size[1]);


if("$view" == "titles" && "$show_filenames" == "no" && "$filetype" !== "file"){

}
if("$view" !== "image"  ){
if(strlen($foldertoher) > 5 && $thum_width > 200 or "$foldertoher" == ""){

imagestring($im,2 ,1 ,2, $w_er, $white);
imagestring($im,2,1 ,2, $w_er, $white);
}
}

imagejpeg($im);
imagedestroy($im);

}//end of mode
?>
Avatar billede bojo Nybegynder
11. april 2005 - 08:45 #1
ca. sådan ( jeg har reformatteret også )


<?
#<!-- Directory Listing Powered By Dirlist Version 2 With Fix2 =>  http://www.vmist.net/scripts/dirlist.php -->
$show_select="true"; // put "true" to show display box or "no" to hide.
$show_search = "true"; // put "true" to show search or "no" to hide.
$show_filenames = "no"; /* when the display is on Titles, put "true" to have text at the top of
the Tite with the filename, put "no" to hide the filename only for non image files.*/
$otherpath=""; // put the path where you want the directory to view, no slashes before or after the path.
$thum_width=100;
$thum_height=90;
$rows=6; // When in titled display, this is how many pictures will be in a row.

//do not edit anything below this line
$mode = $HTTP_GET_VARS["image"];
$S = $HTTP_GET_VARS["S"];
$view = $HTTP_GET_VARS["view"];
$mode= $HTTP_GET_VARS["mode"];
$showonly= $HTTP_GET_VARS["showonly"];

$path =str_replace(basename($_SERVER['PHP_SELF']), '', $_SERVER['PHP_SELF']);

if("$otherpath" == ""){
  $dir="./";
}else{
$path=$path.$otherpath;
$foldertoher="$otherpath/";
$dir="$otherpath";
}
if("$mode" !== "image"){

  echo "<title> Directory of $path</title>";
  if (!isset($view)){  $view = details; }
  if (!isset($S)){ $S =N; }

  function wsort($letter,$ww){
      global $S,$A,$view,$showonly;
      if($A == "" && $S == $letter){ $extra="&A=D"; }
      echo "<A HREF=\"?S=$letter&view=$view$extra&showonly=$showonly\">$ww</A>";
  }

  function viewoption($value,$wrd){
      global $view;
      if("$view" == "$value" ){ $sel = selected;  }
      echo "<option value=\"$value\" $sel>$wrd \n";
  }




  $dh  = @opendir($dir);
  $i=0;
  while (false !== ($dirfile = @readdir($dh))) {
      if($dirfile !== '..' && $dirfile !== '.' ){
        if($showonly){
            if(@eregi("$showonly", $dirfile )){ $dirfile =$dirfile; } else { $dirfile = "";  }

        }
        if("$dirfile" !== ""){

            switch ($S) {
              case N:
              $files[$i][name] = $dirfile;
              $files[$i][fd] = @filemtime("$dir/$dirfile");
              $files[$i][size] = @filesize("$dir/$dirfile");
              break;
              case M:
              $files[$i][fd] = @filemtime("$dir/$dirfile");
              $files[$i][size] = @filesize("$dir/$dirfile");
              $files[$i][name] = $dirfile;
              break;
              case S:
              $files[$i][size] = @filesize("$dir/$dirfile");
              $files[$i][name] = $dirfile;
              $files[$i][fd] = @filemtime("$dir/$dirfile");
              break;
            }//end case

            $sumsize[] =@filesize("$dir/$dirfile");

            $i++;

        }
      }
  }
  if(empty($files)){ $isempty = "yes"; }

  function filesizepre($filesize){ return round( ($filesize / 1024),1  ).k;  }

  ?>


  <? if($show_search == true){ ?>

  <?  } ?>

  <H1>Index of <? echo $path ?> </H1>
  <? if("$show_search" == "true"){ ?>
  <form name="form1" method="get" action="">

  <input type="submit" name="Submit" value="File Search ">
  <input name="showonly" type="text" id="showonly" size="15" value="<? echo $showonly  ?>">
  <br>
  <? }else{

  echo "<input name=showonly type=hidden value=\"$showonly\">";

} ?>

<input name="A" type="hidden" value="<? echo $A ?>">
<input name="S" type="hidden" value="<? echo $S ?>">

<? if("$show_select" == "true"){ ?>
<select name="view" onChange="document.form1.submit()">

<? viewoption(image,"Image Preview"); ?>
<? viewoption(details,"Details"); ?>
<? viewoption(titles,"Titles"); ?>
</select>
<? } ?>
<font color="#376D95" size=2><em><? if("$showonly" ==""){ echo  'Files in directory:'; }else{ echo "Files Showing:"; } ?> <? echo sizeof($files); ?>  <?  if("$showonly" ==""){  echo 'Directory Size:'; }else{ echo "Sorted Size:"; } ?> <?  echo filesizepre(@array_sum($sumsize)) ?> <? if("$showonly" && "$isempty"  !==""){ echo " - File Search Provided 0 Results."; } ?>
<br>
</em></font>

</form>
<PRE><? wsort(N,Name); ?>                                    <? wsort(M,"Last Modified"); ?>      <? wsort(S,"Size"); ?>  <HR>
<?





if($A == ""){
  @sort($files);
}else{

@rsort($files);
}
if(!$isempty){
  $rt=1;
  foreach($files as $filename){



      $getname22 = substr("$filename[name]", 0, 22);
      if(strlen($filename[name]) > 22){ $prefilename = "$getname22..."; }else{ $prefilename = $getname22; }


      if($view == image ){
        echo "<br><a href=\"$foldertoher$filename[name]\"><img src=\"".$_SERVER['PHP_SELF']."?view=$view&mode=image&image=$filename[name]\" width=$thum_width height=$thum_height border=0></a><br>";

      }
      if($view == details){

        $xtn = pathinfo( $filename['name'] );
        $xtn = $xtn['extension'];
        echo "<br><IMG SRC=\"/icons/".$xtn.".gif\" ALT=\"[".$xtn."]\"> ";
      }

      if($view == titles){
        $br='';
        if($rt == $rows){ $br="<br>"; $rt =0; }
        echo "<a href=\"$foldertoher$filename[name]\"><img src=\"".$_SERVER['PHP_SELF']."?view=$view&mode=image&title=yes&image=$filename[name]\" width=$thum_width height=$thum_height border=0></a>  $br";


      }else{

      echo "<A HREF=\"$foldertoher$filename[name]\">$prefilename</A>      ". str_repeat(" ",(25 - strlen($prefilename))) ."    ".date("j-M-y h:iA", $filename[fd])."  ".(filesizepre($filename[size]) )."  ";
  }

  $rt++;
}
}//is empty
?>

</PRE><HR>
<? echo $_SERVER['SERVER_SIGNATURE']; ?>
<?

}//end of mode if nothing
if("$mode" == "image"){
  $image = $foldertoher.$HTTP_GET_VARS["image"];


  $view = $HTTP_GET_VARS["view"];

  $exten = strtoupper(strstr($image, '.'));
  switch ($exten) {
      case '.JPEG':
      $imgd = @imagecreatefromjpeg($image);
      break;
      case '.JPG':
      $imgd= @imagecreatefromjpeg($image);
      break;
      case '.GIF':
      $imgd = @imagecreatefromgif($image);
      break;
      case '.PNG':
      $imgd = @imagecreatefrompng($image);
      break;
  }

  $im = imagecreatetruecolor($thum_width,$thum_width);

  $size = @getimagesize($image);




  $getname22 = substr(@eregi_replace("$exten","",$image) , 0, ($thum_width / 10));

  if( (strlen(@eregi_replace("$exten","",$image)))  > ($thum_width / 10) ){ $w_er = "$getname22..$exten"; }else{ $w_er = $getname22.$exten; }

  if("$imgd" == ""){  $w_er = "$image";  $white = imageColorallocate($im, 255,255,255);  $filetype="file"; }else{

  $rr=@imagecolorat($imgd, 10, 4);
  $cn = @imagecolorsforindex($imgd, $rr);
  if("".$cn[red].$cn[green].$cn[blue]."" < "200200200"){    $white = imageColorallocate($im, 255,255,255);  }
}

@imageCopyResampled($im, $imgd , 0, 0, 0, 0, $thum_width,$thum_width, $size[0], $size[1]);


if("$view" == "titles" && "$show_filenames" == "no" && "$filetype" !== "file"){

}
if("$view" !== "image"  ){
  if(strlen($foldertoher) > 5 && $thum_width > 200 or "$foldertoher" == ""){

      imagestring($im,2 ,1 ,2, $w_er, $white);
      imagestring($im,2,1 ,2, $w_er, $white);
  }
}

imagejpeg($im);
imagedestroy($im);

}//end of mode
?>
Avatar billede bojo Nybegynder
11. april 2005 - 08:49 #2
Btw. pas på med alle de udefinerede indexes og asumed string, brug ikke N, M og S men "N", "M" og "S" i din switch ( og alle de andre steder ) det virker nu, men pludselig definere du N til noget andet og så virker det ikke mere.
Avatar billede michaeljuul Nybegynder
11. april 2005 - 15:57 #3
Jeg kan ikke lige hvad der er galt. Men der kommer bare et lille rødt kryds der hvor ikon filen ellers skulle være.
Avatar billede bojo Nybegynder
11. april 2005 - 16:14 #4
så findes /icons/xtn.gif hvor xtn er filtypen (f.eks jpg.gif, php.gif, ...) ikke
Avatar billede michaeljuul Nybegynder
11. april 2005 - 16:19 #5
Mine ikon-filer hedder noget som html.gif, zip.gif, php.gif osv
Avatar billede bojo Nybegynder
11. april 2005 - 16:38 #6
nu testede jeg på min localhost og nul ikoner - hmmm - ahaaa, der er defineret et alias i min Apache opsætning så /icons/ er et meget dårligt mappenavn med mindre man lægger filerne det rigtige sted. Prøv at døbe mappen om og ret i programmet så det passer.
Avatar billede bojo Nybegynder
11. april 2005 - 16:40 #7
ser ud til du har samme "fejl", se http://duerher.dk/icons/
Avatar billede michaeljuul Nybegynder
11. april 2005 - 16:44 #8
Nu har jeg omdøbt mappe i roden icons til ic. Og det hjælper ikke.
Avatar billede bojo Nybegynder
11. april 2005 - 16:47 #9
du skal også rette i programmet

echo "<br><IMG SRC=\"/icons/".$xtn.".gif\" ALT=\"[".$xtn."]\"> ";

skal rettes til

echo "<br><IMG SRC=\"/ic/".$xtn.".gif\" ALT=\"[".$xtn."]\"> ";
Avatar billede michaeljuul Nybegynder
11. april 2005 - 16:48 #10
Og jeg har rettet til i koden så linjen echo "<br><IMG SRC=\"/icons/".$xtn.".gif\" ALT=\"[".$xtn."]\"> ";

Er blevet til
echo "<br><IMG SRC=\"/ic/".$xtn.".gif\" ALT=\"[".$xtn."]\"> ";
Avatar billede michaeljuul Nybegynder
11. april 2005 - 16:49 #11
Jeg har også prøvet at omdøbe ikon filen zip.gif til xtn.gif hjælper heller ikke
Avatar billede bojo Nybegynder
11. april 2005 - 16:59 #12
hmmm, det virker både på mit hotel og min lokale server - sært. Med mindre du ikke har ikoner til de filer der er i folderen.

se mine 2 gif'er på http://l4.dk/ic/index.php
Avatar billede michaeljuul Nybegynder
11. april 2005 - 16:59 #13
Har fået det til at virke. Har omdøbt ic til ikon, og det sammen i koden.
Du skulle vel ikke kende et sted hvor man kan hente sådanne ikon fil. Altså til f.eks. word, rar og excel og osv.
Ellers smid lige et svar
Avatar billede michaeljuul Nybegynder
11. april 2005 - 17:02 #14
Men hvordan kan det være at den ikke bare viser default.gif ud for de filer man ikke har en ikon fil til som passer
Avatar billede bojo Nybegynder
11. april 2005 - 17:06 #15
kender ikke sådan et sted, men fandt lidt pjat ikoner her http://www.iconarchive.com/
http://www.iconbazaar.com/
http://www.ibiblio.org/gio/iconbrowser/

Nej tak, svar selv og husk at acceptere svaret ;-)
Avatar billede michaeljuul Nybegynder
11. april 2005 - 17:07 #16
Men hvordan kan det være at den ikke bare viser default.gif ud for de filer man ikke har en ikon fil til som passer.
Du kan se her hvad jeg mener. www.duerher.dk/test

Er du helt sikker på du ikke vil have Point?
Avatar billede bojo Nybegynder
11. april 2005 - 17:41 #17
så skal du først med file_exists( {filnavn} ) finde ud af om ikonfilen findes til den filtype og hvis ikke så vis default.gif i stedet


ja, helt sikker :-)
Avatar billede michaeljuul Nybegynder
11. april 2005 - 17:43 #18
Jeg har ikke ikon filen til xls, men jeg har en default.gif
Hvordan gør du lige det, med file_exists?
Avatar billede bojo Nybegynder
11. april 2005 - 17:57 #19
prøv at ret til

      if($view == details){
        $xtn = pathinfo( $filename['name'] );
        $xtn = $xtn['extension'];
        $icon = "/ic/" . $xtn . ".gif";
        $rod = $_SERVER['DOCUMENT_ROOT'];
        if( !file_exists( $rod.$icon ) )
            $icon = "/ic/default.gif";
        echo "<br><IMG SRC=\"" . $icon . "\" ALT=\"[".$xtn."]\"> ";
      }
Avatar billede michaeljuul Nybegynder
11. april 2005 - 17:58 #20
Mangler der ikke echo "<br><IMG SRC=\"/ikon/".$xtn.".gif\" ALT=\"[".$xtn."]\"> ";
Altså i din nederste linje
Avatar billede michaeljuul Nybegynder
11. april 2005 - 18:01 #21
Og der hvor du har ic skal vel også være ikon
Avatar billede michaeljuul Nybegynder
11. april 2005 - 18:03 #22
Ups min fejl. Det var kun der hvor der stod ic, at der skulle rettes med ikon.

Nu virker det :-)

Tak for hjælpen. Skal du ikke bare have lidt point?
Avatar billede bojo Nybegynder
11. april 2005 - 18:05 #23
nej tak
Avatar billede michaeljuul Nybegynder
11. april 2005 - 18:08 #24
Ok og tak endnu engang
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