Home | Registrieren | Einloggen | Suchen | Aktuelles


Forum » PHP & MySQL » php seite: anzeige von nur jpg und gif bildern Antworten
php seite: anzeige von nur jpg und gif bildern

pajazzo
Pixelschubser


Beiträge: 11


hallo zusammen

Ich habe eine Php Seite "upload.php" bei der ich dateien in einen ordner uploaden kann. leider werden anschliessend alle dateien im ordner angezeigt. Ich möchte nun, das nur grafikdateien angezeigt werden. hier die upload.php:

1: 
2: 
3: 
4: 
5: 
6: 
7: 
8: 
9: 
10: 
11: 
12: 
13: 
14: 
15: 
16: 
17: 
18: 
19: 
20: 
21: 
22: 
23: 
24: 
25: 
26: 
27: 
28: 
29: 
30: 
31: 
32: 
33: 
34: 
35: 
36: 
37: 
38: 
39: 
40: 
41: 
42: 
43: 
44: 
45: 
46: 
47: 
48: 
49: 
50: 
51: 
52: 
53: 
54: 
55: 
56: 
57: 
58: 
59: 
60: 
61: 
62: 
63: 
64: 
65: 
66: 
67: 
68: 
69: 
70: 
71: 
72: 
73: 
74: 
75: 
76: 
77: 
78: 
79: 
80: 
81: 
82: 
83: 
84:
<?php
$filepath = "/home/vhosts/ch/v/mein-server/www/html/fotos/";

if ($upfile_name != "") {
if (!file_exists($filepath.$_FILES['upfile']['name'])) {
if (move_uploaded_file($_FILES['upfile']['tmp_name'],
$filepath.$_FILES['upfile']['name'])) {
echo "<p>deine Datei wurde gespeichert</p>";
 } else {
echo "<p>Leider fehlgeschlagen</p>";
}

} else {
echo " <p>du hast keine Datei definiert.</p>";
}
} 
 
unset($files);
if ($dh = opendir($filepath))
{
  while($file = readdir($dh))
  {
    if (!ereg("^\.+$",$file))
    {
      $files[] = $file;
    }
  }
  closedir($dh);
}


$webpath = "/fotos/";

if (is_array($files)) {
  echo "<table border=\"0\" width=\"500\" cellpadding=\"2\"
  cellspacing=\"5\" width=\"100%\">\r\n";
  echo "<tr>";
  echo "<th>Datei</th>";
  echo "<th>Grösse</th>";
  echo "<th>Datum</th>";
  echo "<th colspan=\"2\">Aktionen</th></tr>\r\n";
  
  natcasesort($files);
  reset($files);
  
  foreach($files as $idx=>$file)

{
  if ($idx % 2) {
    echo "<tr bgcolor=\"#FFF0F0\">";  // hier kann man die beiden Farben ändern //
    } else {
      echo "<tr bgcolor=\"#FFF0F0\">";
    }
    printf ("<td><a href=\"%s%s\" target=\"blank\"
    target=\"_self\">%s</a></td>",
    $webpath, $file, $file);



     printf ("<td align=\"right\">%s Bytes</td>",
    number_format(filesize($filepath.$file), 0, ",", "."));
    printf ("<td align=\"center\">%s</td>",
    date("d.m.Y. H:i:s", filemtime($filepath.$file)));
    printf ("<td><a href=\"%s?file=%s\"><strong>Loeschen</strong></a></td>",
    "delete.php", $file);

    printf ("<td><a href=\"%s?file=%s\"><strong>Umbenennen</strong></a></td>",
    "rename.php", $file);
 
  }
  echo "</table>";
  }

?>
<div id="cleardiv">
</div>
</div>
<hr>
<form action="upload.php" method="POST"
enctype="multipart/form-data">

<input type="file" name="upfile">
<input type="submit" value="Hochladen">
</form>


im " echo "
1:
<th>Datei</th>";
" wir der dateiname angezeigt. wäre es möglich, hier irgendwie bilddateien auszusortieren?

Danke euch!


  Profil   Editieren   Zitieren

bastir
Mausakrobat


Beiträge: 150


Hallo,

bastel dir doch ein Array mit den Dateiendungen, die du freigeben möchtest (jpg, gif).
Dann läßt du nur die Dateien anzeigen, die in dem Array enthalten.

Viel Erfolg.
Sebastian

---
Man kann nicht alles wissen, man muß nur wissen wo es steht!

  Profil   Website   Editieren   Zitieren

pajazzo
Pixelschubser


Beiträge: 11


danke, habe aber keinen plan wie ich dies "basteln" kann.

  Profil   Editieren   Zitieren

bastir
Mausakrobat


Beiträge: 150


Dann schauen wir doch mal, ob wir dir nicht trotzdem helfen können. Mich interessiert jetzt noch, ob auch nur Bilder hoch geladen werden sollen oder ob alles erlaubt ist, aber nur die Bilder angezeigt werden.

Ciao
Sebastian

---
Man kann nicht alles wissen, man muß nur wissen wo es steht!

  Profil   Website   Editieren   Zitieren

pajazzo
Pixelschubser


Beiträge: 11


Das ist eigentlich egal. Im Ordner sind auf jedenfall noch php dateien, die ich für das Fotoalbum benötige und diese sollen in dieser upload liste nicht zu sehen sein.

  Profil   Editieren   Zitieren

flipflop
Otto-Normal-Poster


Beiträge: 63


Zeigt alles an was im Ordner ist:
1: 
2: 
3: 
4: 
5: 
6: 
7: 
8: 
9: 
10: 
11: 
12: 
13: 
14:
<?php
$l=opendir( "./" );
while($d=readdir($l))  {
  //hier alles auflisten was nicht angezeigtwerden soll.
  if ($d=="." || $d==".." || $d=="index.php" ) { 
    print ""; 
  }
  else { 
    echo"<img src='$d alt='$d' />"; 
  }
}
?> 


---
http://alles-ausser-banane.de/

Diese Nachricht wurde geändert von: flipflop
  Profil   Website   Editieren   Zitieren

flipflop
Otto-Normal-Poster


Beiträge: 63


hier mit kannst du einen Suchstring aufteilen
1: 
2: 
3: 
4: 
5: 
6: 
7: 
8: 
9: 
10: 
11:
<?php
$limitedext = array(".gif",".jpg",".png",".jpeg"); //Die erlaubten Extensions hier eintragen

 $ext = strrchr($d,'.'); # Typ der Datei ermitteln!
 if (!in_array($ext, $limitedext)){
     echo "Die Datei ist kein Bild. Erlaubt sind alle gängigen Bildformate!<br>";
    }
else { echo "Bild"; }
?>


---
http://alles-ausser-banane.de/

Diese Nachricht wurde geändert von: flipflop
  Profil   Website   Editieren   Zitieren

flipflop
Otto-Normal-Poster


Beiträge: 63


Das ganze zusammen basteln und fertig müsste Dein Script sein ;)
Julian

---
http://alles-ausser-banane.de/

  Profil   Website   Editieren   Zitieren

bastir
Mausakrobat


Beiträge: 150


Da war flipflop schneller wie ich, aber ich poste mal auch meine Lösung:
Den folgenden Code mußt du bei dir an den ensprechenden Stellen austauschen.

Viel Erfolg.


1: 
2: 
3: 
4: 
5: 
6: 
7: 
8: 
9: 
10: 
11: 
12: 
13: 
14: 
15:
$dateiliste = array("jpg","gif","png");
if ($dh = opendir($filepath))
{
  while($file = readdir($dh))
  {
    if (!ereg("^\.+$",$file))
    {
      $datei = explode(".",$file);
      if (in_array($datei[1],$dateiliste)) {
      	$files[] = $file;
    	}
    }
  }
  closedir($dh);
}


---
Man kann nicht alles wissen, man muß nur wissen wo es steht!

  Profil   Website   Editieren   Zitieren

schmchris
Mausakrobat


Beiträge: 163


Eine überprüfung auf Extensions finde ich nicht gerade sicher. Ich würde einfach überprüfen ob man die Bildgröße auslesen kann was ja nur bei Bildern geht.

Hier mal ungetesteter Code :

1: 
2: 
3: 
4: 
5: 
6: 
7: 
8: 
9: 
10: 
11: 
12: 
13:
if ($dh = opendir($filepath))
{
  while($file = readdir($dh))
  {
   $bild = getimagesize($filepath.$file);
   if($bild[0] >= "0")
   {
    $files[] = $file;
   }
  }
  closedir($dh);
}

  Profil   Editieren   Zitieren
 

Antworten
Nach oben