Hackerboard Wiki HaboBlog
Hackerboard bei Facebook Hackerboard bei Google+ Hackerboard bei Twitter

[HaBo]

 
(Web-) Design und webbasierte Sprachen Tipps & Tricks, Designabgleich, HTML & Javascript, Flash, ASP, PHP, Perl/CGI...

PHP Bild - Galerie

Diskussion: PHP Bild - Galerie im Forum (Web-) Design und webbasierte Sprachen, in der Kategorie Web, Network & Multimedia Palace; Anzeige hej an alle ich hätte da eine frage bezüglich einer bildergallerie in php: ich benötige ein script, dass mir ...

Antwort
Alt 27.12.05, 13:15   #1 (permalink)
 
Benutzerbild von ERit
 
Registriert seit: 31.03.05
ERit Leistung: Facit NTK
Likes: 0
Standard PHP Bild - Galerie

Anzeige

hej an alle
ich hätte da eine frage bezüglich einer bildergallerie in php: ich benötige ein script, dass mir alle bilder (beliebige namen) aus einem oder mehreren Ordnern (Unterordnern) auf einer site als link verkleinert darstellt (der link bezieht sich auf das originale bild).
Das Problem dabei ist jedoch, wenn es sich hierbei um bilder mit einer hohen auflösung handelt. Denn realisiert man das so, dass die Bilder einfach nur verkleinert dargestellt werden, braucht es an zeit, die gesamten grafiken vom server zu laden, wenn man nur 1 oder 2 bilder in originalgröße sehen möchte.
Ich brauche ein Script, dass die Bilder aus beliebigen Unterordnern nimmt, echt verkleinert darstellt und bei einem klick auf das bild erst das original image darstellt.

Ich hab unter google bereits klassen dafür gefunden, jedoch tu ich mir schwer mit der umsetzung auf meine scripten.

thx

ERit ist offline   Mit Zitat antworten
Alt 27.12.05, 13:26   #2 (permalink)
Senior Member
 
Registriert seit: 18.09.05
[starfoxx] Leistung: Facit NTK
Likes: 0
Standard

Du köntest das Bild uU. gleich beim Upload umformen lassen.
Dass ein sog. Thumbnail erstellt wird, weleches du dann verlinkst. Würde einiges an rechenleistung sparen, aber halt Speicherplatz fressen. (wenn auch wenig)

Ein Freund hat mal sowas geschrieben, ich frage mal ob er das noch hat und dir den code überlässt
[starfoxx] ist offline   Mit Zitat antworten
   
HaBOT
 
- Anzeige -

Werbung ist gerade online    
Alt 27.12.05, 13:33   #3 (permalink)
Themenstarter
 
Benutzerbild von ERit
 
Registriert seit: 31.03.05
ERit Leistung: Facit NTK
Likes: 0
Standard

thx wäre toll. die idee ist eigentlich garnicht schlecht: aber ein bild mit dieser größe über http up-zu loaden ... wenn dann würden ich den ganzen ordner (wenn neue bilder vorhanden sind) gleich über ftp uploaden und ein php script starten, dass die php Datei, die die Bilder verkleinert und anzeigt in den ordner kopiert und einen link auf der übersichtsseite zu dieser datei erstellt über eine eigene seite uploaden ist denk ich mal zu kompliziert ...

lg
ERit ist offline   Mit Zitat antworten
Alt 27.12.05, 13:37   #4 (permalink)
 
Registriert seit: 15.08.03
flame Leistung: Facit NTK
flame eine Nachricht über ICQ schicken
Likes: 0
Standard

ich hab da mal ein script geschrieben, dass die bilder allerdings in echtzeit verkleinert. Also das auflisten der files dauert dann trotzdem etwas, da jedes bild einseln verkleinert wird.

Das ganze funzt nur für jpg (aber kannste ja nach belieben dann auch auf andere formate erweitern.

Alles was nicht JPG ist (also auch unterordner) werden als einfacher link angegeben. Aber kannst ja nach belieben erweitern, wie du willst.

Ach ja, das script arbeitet immer nur über einen ordner. Inhalte aus unterordnern werden nicht aufgeführt.

Code:
// ////////////////////////////////////////////////////////////////////////////////

$path = "/www/htdocs/filesss/files/treffen_nbg_2004-1"; // lokaler pfad
$dir = "";                     // relativer pfad ab index.php

// ////////////////////////////////////////////////////////////////////////////////





if (isset($_GET['file'])) {
  header('Content-type: image/jpeg');                                                //browser auf imageausgabe vorbereiten
    $size         = getimagesize($_GET['file']);                                   //bildgröße definieren (ff.)
    $width_old    = $size[0];
    $height_old    = $size[1];
    $old_picture  = imagecreatefromjpeg($_GET['file']);                            //bild einlesen
    if ($width_old > $height_old) {                                                //format auslesen (hochkannt, quer)
      $width_new = '170';                                                          //und neue maße proportional berechnen
          $div = $width_old / $width_new;
      $height_new = $height_old / $div;}
    elseif ($width_old < $height_old) {
      $height_new = '170';
          $div = $height_old / $height_new;
      $width_new = $width_old / $div;}
    else {
      $width_new = '170';
      $height_new = $width_new;}
    $new_picture  = imagecreatetruecolor($width_new, $height_new);                  //neues bild definieren
    imagecopyresampled($new_picture, $old_picture, 0, 0, 0, 0, $width_new, $height_new, $width_old, $height_old);  //resample
    imagejpeg($new_picture);
    exit;
 }


echo'
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>Unbenanntes Dokument</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</head>

<body>
<p><strong><font size="5">Dateiliste von YOURSERVER </font></strong></p>
Dieser Webspace dient ausschließlich dazu, diverse dateien online verfügbar zu machen, In Foren einzubinden, oder für Bestimmte zwecke privat erreichbar zu machen.<br>
Ohne ausdrückliche Genehmigung ist es daher untersagt diese Dateien zu Speichern oder weiterzuverwenden.
<hr>
<p>
<table border=0>';

//Daten auslesen

$dp = opendir($path);
 while ($file = readdir($dp))
 {
   if (!preg_match('/^\.{1,2}/', $file) && $file != 'index.php')
   {
      if (strtolower(substr($file , strlen($file)-3, strlen($file)))=='jpg')
      {
      echo '<tr><td><img src="index.php?file='.$dir.$file.'"></td>';
      }
      else
      {
      echo '<tr><td>&nbsp;</td>';
      }
   echo '<td><a href="'.$dir.$file.'">'.$file.'</a></td></tr>';

   }
}

echo'
</p>
</body>
</html>';
?>
flame ist offline   Mit Zitat antworten
Alt 27.12.05, 14:02   #5 (permalink)
Themenstarter
 
Benutzerbild von ERit
 
Registriert seit: 31.03.05
ERit Leistung: Facit NTK
Likes: 0
Standard

hab mich da grad ein bisschen damit gespielt, irgendwie haut das nicht ganz hin. aber ich weiß jetzt was für einen teil des codes ich benötige, um bilder zu verkleinern:

Code:
if (isset($_GET['file'])) {
  header('Content-type: image/jpeg');                                                //browser auf imageausgabe vorbereiten
    $size         = getimagesize($_GET['file']);                                   //bildgröße definieren (ff.)
    $width_old    = $size[0];
    $height_old    = $size[1];
    $old_picture  = imagecreatefromjpeg($_GET['file']);                            //bild einlesen
    if ($width_old > $height_old) {                                                //format auslesen (hochkannt, quer)
      $width_new = '170';                                                          //und neue maße proportional berechnen
          $div = $width_old / $width_new;
      $height_new = $height_old / $div;}
    elseif ($width_old < $height_old) {
      $height_new = '170';
          $div = $height_old / $height_new;
      $width_new = $width_old / $div;}
    else {
      $width_new = '170';
      $height_new = $width_new;}
    $new_picture  = imagecreatetruecolor($width_new, $height_new);                  //neues bild definieren
    imagecopyresampled($new_picture, $old_picture, 0, 0, 0, 0, $width_new, $height_new, $width_old, $height_old);  //resample
    imagejpeg($new_picture);
    exit;
 }
thx
ERit ist offline   Mit Zitat antworten
Alt 27.12.05, 14:07   #6 (permalink)
 
Registriert seit: 15.08.03
flame Leistung: Facit NTK
flame eine Nachricht über ICQ schicken
Likes: 0
Standard

ach ja.. dein provider muss natürlich die GDlib2 installiert haben.!! hatte ich vergessen zu erwähnen.
flame ist offline   Mit Zitat antworten
Alt 29.11.06, 19:37   #7 (permalink)
 
Benutzerbild von reaLInsanity
 
Registriert seit: 10.01.06
reaLInsanity Leistung: Facit NTK
reaLInsanity eine Nachricht über ICQ schicken reaLInsanity eine Nachricht über AIM schicken reaLInsanity eine Nachricht über Yahoo! schicken
Likes: 0
Standard

Hab mir mal den Quellcode genommen und nach meinen Wünschen angepasst der sieht aus wie folgt:
PHP-Code:
<?php
echo "<h2>Pictures</h2>";
echo 
"<br />Hier findet ihr Bilder von uns.<br /><br />";
// ////////////////////////////////////////////////////////////////////////////////

$path "/srv/www/htdocs/web81/html/realinsanity/schatznme/img/schatz"// lokaler pfad
$dir "img/schatz/";                     // relativer pfad ab index.php

// ////////////////////////////////////////////////////////////////////////////////





if (isset($_GET['file'])) {
  
header('Content-type: image/jpeg');                                                //browser auf imageausgabe vorbereiten
    
$size         getimagesize($_GET['file']);                                   //bildgröße definieren (ff.)
    
$width_old    $size[0];
    
$height_old    $size[1];
    
$old_picture  imagecreatefromjpeg($_GET['file']);                            //bild einlesen
    
if ($width_old $height_old) {                                                //format auslesen (hochkannt, quer)
      
$width_new '170';                                                          //und neue maße proportional berechnen
          
$div $width_old $width_new;
      
$height_new $height_old $div;}
    elseif (
$width_old $height_old) {
      
$height_new '170';
          
$div $height_old $height_new;
      
$width_new $width_old $div;}
    else {
      
$width_new '170';
      
$height_new $width_new;}
    
$new_picture  imagecreatetruecolor($width_new$height_new);                  //neues bild definieren
    
imagecopyresampled($new_picture$old_picture0000$width_new$height_new$width_old$height_old);  //resample
    
imagejpeg($new_picture);
    exit;
 }


echo
'<table border=0>';

//Daten auslesen

$dp opendir($path);
 while (
$file readdir($dp))
 {
   if (!
preg_match('/^\.{1,2}/'$file) && $file != '/schatznme/inc/inhalt/picz.php')
   {
      if (
strtolower(substr($file strlen($file)-3strlen($file)))=='jpg')
      {
      echo 
'<tr><td><img src="/schatzme/inc/inhalt/picz.php?file='.$dir.$file.'" alt="'.$file.'"></td>';
      }
      else
      {
      echo 
'<tr><td>&nbsp;</td>';
      }
   echo 
'<td><a href="'.$dir.$file.'">'.$file.'</a></td></tr>';

   }
}
echo 
'</table>';
?>
Mein Problem ist nun der zeigt mir die Thumbs net an... hab schon alle möglichen Pfade ausprobiert aber es geht einfach nicht..
hier der link zum angucken vllt hilft euch das ja: http://truelove-online.de.vu/index.php?section=picz
reaLInsanity ist offline   Mit Zitat antworten
Alt 29.11.06, 20:10   #8 (permalink)
 
Registriert seit: 29.01.06
xsheep Leistung: Facit NTK
Likes: 0
Standard

Das Problem ist, dass du zuerst Text ausgibst, dann das Bild und zuletzt wieder Text. Dann weist du den Browser an, das ganze als Bild zu interpretieren. Der kann damit natürlich nix anfangen. Der Codeschnipsel, das ich gestern hier gepostet habe, sollte eigentlich funktionieren, versuch es mal damit.

edit: Ausserdem ist der Code problematisch, weil man ihm per GET-Variable beliebig grosse Bilddateien übergeben kann, was den Server ziemlich belasten kann.
xsheep ist offline   Mit Zitat antworten
Alt 29.11.06, 20:50   #9 (permalink)
 
Registriert seit: 15.08.03
flame Leistung: Facit NTK
flame eine Nachricht über ICQ schicken
Likes: 0
Standard

Der Fehler sollte in zeile 50 liegen, weil du da eine andere datei verlinkst.. dort sollte meiner erinenrung nach $SERVER['PHPSELF'] stehen.

Weil er ja nur die funktion oben aufruft.

Dei Aussage von xsheep, dass der header im nachhinein auf grafikausgabe geändert wird, stimmt nicht.. die headeranweisung wird ausgegeben, wenn man den GDLib-teil aufruft, dieser wird ja aber als grafik eingebunden, vion daher stimmt das schon so.
Im moment wird bei dir eben nur der alternativtext ausgegeben, weil der pfad falsch ist.

Hingegen stimmt die Aussage, die er nach dem edit eingefügt hat. Aber darüber solltest du dir im klaren sein. evtl können daraus sogar Sicherheitslücken entstehen, denen ich mir nicht bewust bin.

edit:
Ach ja, wenn alles richtig ist, funzt das script 100 pro, hatte es bis vor kurzem im einsatz, zwar um einige zeilen erweitert, da es inzwischen ein ganzer filebrowser mit miniaturansicht geworden ist., der n haufen dateitypen erkennt, und auch mit unterverzeichnissen umgehen kann, aber das grundgerüst ist das selbe geblieben.
flame ist offline   Mit Zitat antworten
Alt 29.11.06, 21:12   #10 (permalink)
Moderator
 
Benutzerbild von lightsaver
 
Registriert seit: 19.06.06
lightsaver Leistung: Pentium Ilightsaver Leistung: Pentium Ilightsaver Leistung: Pentium I
Likes: 52
Standard

Zitat:
Original von flame

Im moment wird bei dir eben nur der alternativtext ausgegeben, weil der pfad falsch ist.
das habe ich auch erst gedacht bis ich mir mal den quelltext unter firefox angeguckt habe. siehe da, ich bekomme den source vom bild ;-)

wenn ich einfach mal andere werte für file= übergebe bekomme ich auf diese weise auch fehlermeldungen zu sehen, dass die angegebene datei dann nicht geöffnet werden konnte. es ist soweit also eigentlich richtig verlinkt
lightsaver ist offline   Mit Zitat antworten
Alt 29.11.06, 21:28   #11 (permalink)
 
Benutzerbild von reaLInsanity
 
Registriert seit: 10.01.06
reaLInsanity Leistung: Facit NTK
reaLInsanity eine Nachricht über ICQ schicken reaLInsanity eine Nachricht über AIM schicken reaLInsanity eine Nachricht über Yahoo! schicken
Likes: 0
Standard

Das ansich verlinkte tuts ja... nur der zeigt keine Thumbs an kp warum.. hab das auch geändert nur zeigt keine wirkung bei mir...

also die Page liegt im Verzeichnis schatznme dieses Verzeichniss befindet sich auf meiner hauptpage der real-insanity.de, jedoch habe ich die Page die in dem Ordner schatznme befindet über nic.de.vu laufen sprich der Pfad von meiner real-insanity.de Page wäre real-insanity.de/schatznme/ wobei die eig. Seite unter truelove-online.de.vu zu finden ist... hab ich vltl mit den pfad angaben was falsch gemacht?
wenn ich die datei ohne über die de.vu Domain drauf zugreife sprich: real-insanity.de/schatznme/inc/ihalt/picz.de?file=imgp3884.jpg zeigt der mir das alles an:

Code:
<h2>Pictures</h2><br />Hier findet ihr Bilder von uns.<br /><br /><br />
<b>Warning</b>:  getimagesize(): Unable to access imgp3884.jpg in <b>/srv/www/htdocs/web81/html/realinsanity/schatznme/inc/inhalt/picz.php</b> on line <b>17</b><br />
<br />
<b>Warning</b>:  getimagesize(imgp3884.jpg): failed to open stream: No such file or directory in <b>/srv/www/htdocs/web81/html/realinsanity/schatznme/inc/inhalt/picz.php</b> on line <b>17</b><br />
<br />
<b>Warning</b>:  imagecreatefromjpeg(imgp3884.jpg): failed to open stream: No such file or directory in <b>/srv/www/htdocs/web81/html/realinsanity/schatznme/inc/inhalt/picz.php</b> on line <b>20</b><br />
<br />
<b>Warning</b>:  imagecopyresampled(): supplied argument is not a valid Image resource in <b>/srv/www/htdocs/web81/html/realinsanity/schatznme/inc/inhalt/picz.php</b> on line <b>33</b><br />
????JFIF??>CREATOR: gd-jpeg v1.0 (using IJG JPEG v62), default quality
??C		

 $.' ",#(7),01444'9=82<.342??C			

2!!22222222222222222222222222222222222222222222222222????"?Ä	
?Ä?}!1AQa"q2??#B?ÁR? $3br?	
%&'()*456789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz???????Š????????š??¤??§¨????´???¸??Â?Ä??Ç?É??ÓÔ?Ö×??Úáâ?ä??ç?é???óô?ö÷??ú?Ä	
?Ä?w!1AQaq"2B???Á	#3R br?
$4á%?&'()*56789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz????????Š????????š??¤??§¨????´???¸??Â?Ä??Ç?É??ÓÔ?Ö×??Úâ?ä??ç?é??óô?ö÷??ú?Ú???Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( ??
reaLInsanity ist offline   Mit Zitat antworten
Alt 29.11.06, 21:45   #12 (permalink)
 
Registriert seit: 29.01.06
xsheep Leistung: Facit NTK
Likes: 0
Standard

Zitat:
Original von flame
Dei Aussage von xsheep, dass der header im nachhinein auf grafikausgabe geändert wird, stimmt nicht.. die headeranweisung wird ausgegeben, wenn man den GDLib-teil aufruft, dieser wird ja aber als grafik eingebunden, vion daher stimmt das schon so.
Im moment wird bei dir eben nur der alternativtext ausgegeben, weil der pfad falsch ist.
Vielleicht habe ich mich unverständlich ausgedrückt, aber ich habe gemeint, dass im Quelltext zuerst HTML steht, dann die Binärdaten des Thumnails und schliesslich wieder HTML, und dass das logischerweise vom Browser nicht angezeigt werden kann, den Quelltext hat Abstauber ja schon eingefügt.
xsheep ist offline   Mit Zitat antworten
Alt 29.11.06, 21:59   #13 (permalink)
 
Benutzerbild von reaLInsanity
 
Registriert seit: 10.01.06
reaLInsanity Leistung: Facit NTK
reaLInsanity eine Nachricht über ICQ schicken reaLInsanity eine Nachricht über AIM schicken reaLInsanity eine Nachricht über Yahoo! schicken
Likes: 0
Standard

hab jetzt mal den HTML-Krams rausgenommen funktioniert trotzden leider nicht
reaLInsanity ist offline   Mit Zitat antworten
Alt 29.11.06, 23:53   #14 (permalink)
 
Registriert seit: 15.08.03
flame Leistung: Facit NTK
flame eine Nachricht über ICQ schicken
Likes: 0
Standard

also ich finde unter den angegebenen pfaden auf deinem server auch keine bilder.. (soweit das hier zugriffsberechtigt ist).

Schick mir doch mal bitte (per pn oder e-mail) deinen code, und die url zu mindestens einem deiner bilder. dann schau ich mir das am Samstag mal an.. vorher bin ich leider nichtmehr zuhause.. Aber ich behaupte immernoch, dass die pfadangaben nicht stimmen.
flame ist offline   Mit Zitat antworten
Alt 30.11.06, 08:50   #15 (permalink)
Themenstarter
 
Benutzerbild von ERit
 
Registriert seit: 31.03.05
ERit Leistung: Facit NTK
Likes: 0
Standard

löl schon etwas älter der thread aber trotzdem danke. kann das ganze mittlerweile schon selber coden :]

zum beispiel:
ja also html code und bildcode geht natürlich garnicht. wenn ein php scipt ein bild erzeugt darf es selbst keinen code wie html, javascript usw enthalten. ich denke auch mal, was ich noch nie probiert habe, dass auch "falscher" php code das bild nicht korrekt darstellen lässt, z.b.
Code:
$dp = opendir($path);
 while ($file = readdir($dp))
da das script ja wie ein bild auch in "img" tags eingebunden werden kann.
lg
ERit ist offline   Mit Zitat antworten
Antwort
   
- Anzeige -

Werbung ist gerade online    

[HaBo] » Web, Network & Multimedia Palace » (Web-) Design und webbasierte Sprachen » PHP Bild - Galerie
Themen-Optionen
Ansicht

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks sind aus
Pingbacks sind aus
Refbacks sind aus


Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
Online Bilder Galerie Behemoth (Web-) Design und webbasierte Sprachen 3 27.01.06 18:14
Statt Webcam-Bild kommt das Bild der TV-Karte schweiz Die Problemzone 9 30.06.05 11:05
Suche schlankes Galerie-Script maedmexx (Web-) Design und webbasierte Sprachen 12 08.06.05 12:47
PHP - Bilder auslesen und in Galerie darstellen TheEvilOne (Web-) Design und webbasierte Sprachen 10 21.02.05 15:24
Projekt: PC-Galerie Erde Hardware Mods 5 13.01.05 13:14


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